亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

打印錯誤輸出流的時候,我測試在后面不加return 1也可以有效

這是為什么?不需要return 1也可以?

正在回答

4 回答

#include<stdio.h>
/*stdin?*?stdout?*?stderr*/
int?main(){????
?fprintf(stdout,"please?input?the?value?a:\n");???
?int?a;??
??fscanf(stdin,"%d",&a);?
???if(a<0)
???{???
???fprintf(stderr,"the?value?must?>?0\n");??
???//?return?1;
???}
???printf("你輸入的是%d\n",a);???
???return?0;}

1去掉return 1;提示報錯,繼續執行。

2加上return 0;我發現和return 1;好像一樣啊,報錯不再執行

0 回復 有任何疑惑可以回復我~

只要你把數據寫到stderr中,就是輸出錯誤流了,和返回什么沒有關系

0 回復 有任何疑惑可以回復我~

在前面的課程中老師講過了,在執行C語言程序時,如果前一個步驟執行錯誤,就不會往下執行,如何判斷前一個程序是否出錯,是看執行它以后返回值是否為0,如果為0,繼續執行,如果不為0,則程序就不繼續執行了。

所以,在編程時,我們要想到,當程序沒有得到我們想要的東西時,我們需要不繼續執行程序,所以應返回一個非0的錯誤碼,

如果,像你提問的那樣,不加return 1,則即使程序判斷出錯誤了,也沒有相應措施,它的判斷是沒意義的,

例如:本節講的這段語句中if外面再加一條語句,printf("你輸入的是%d\n",a);

????????? 如果if判斷我們輸入的是<0,但會因為沒有return 1;而繼續執行,輸出結果中除了if語句內的輸出,還有if外的輸出;

????????? 如果我們在if判斷語句中加了return 0;注意,是return 0;????? 雖然當if判斷出輸入的是<0,也跳出程序了,也提示了,但是程序執行這段語句后的返回值是0,如果這段程序后面還有程序,因為前一個程序的返回值為0,所以它會繼續執行的。所以,if雖然判斷了,提示了,但沒有停止程序執行。

??????? 所以,我認為,return 一個非0整數 ,不僅有提示作用,還有使程序停止運行的作用。

???????

?????????

4 回復 有任何疑惑可以回復我~
#1

慕勒2752433

棒棒噠
2016-09-18 回復 有任何疑惑可以回復我~

return 1是為了返回錯誤碼,便于知道程序出錯了,是為了讓程序員看的

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

打印錯誤輸出流的時候,我測試在后面不加return 1也可以有效

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號