課程
/后端開發(fā)
/C
/Linux C語言編程基本原理與實踐
這是為什么?不需要return 1也可以?
2016-04-11
源自:Linux C語言編程基本原理與實踐 7-1
正在回答
#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;提示報錯,繼續(xù)執(zhí)行。
2加上return 0;我發(fā)現(xiàn)和return 1;好像一樣啊,報錯不再執(zhí)行
只要你把數(shù)據(jù)寫到stderr中,就是輸出錯誤流了,和返回什么沒有關(guān)系
在前面的課程中老師講過了,在執(zhí)行C語言程序時,如果前一個步驟執(zhí)行錯誤,就不會往下執(zhí)行,如何判斷前一個程序是否出錯,是看執(zhí)行它以后返回值是否為0,如果為0,繼續(xù)執(zhí)行,如果不為0,則程序就不繼續(xù)執(zhí)行了。
所以,在編程時,我們要想到,當(dāng)程序沒有得到我們想要的東西時,我們需要不繼續(xù)執(zhí)行程序,所以應(yīng)返回一個非0的錯誤碼,
如果,像你提問的那樣,不加return 1,則即使程序判斷出錯誤了,也沒有相應(yīng)措施,它的判斷是沒意義的,
例如:本節(jié)講的這段語句中if外面再加一條語句,printf("你輸入的是%d\n",a);
????????? 如果if判斷我們輸入的是<0,但會因為沒有return 1;而繼續(xù)執(zhí)行,輸出結(jié)果中除了if語句內(nèi)的輸出,還有if外的輸出;
????????? 如果我們在if判斷語句中加了return 0;注意,是return 0;????? 雖然當(dāng)if判斷出輸入的是<0,也跳出程序了,也提示了,但是程序執(zhí)行這段語句后的返回值是0,如果這段程序后面還有程序,因為前一個程序的返回值為0,所以它會繼續(xù)執(zhí)行的。所以,if雖然判斷了,提示了,但沒有停止程序執(zhí)行。
??????? 所以,我認(rèn)為,return 一個非0整數(shù) ,不僅有提示作用,還有使程序停止運行的作用。
???????
?????????
慕勒2752433
return 1是為了返回錯誤碼,便于知道程序出錯了,是為了讓程序員看的
舉報
本視頻教程介紹C語言基本工作原理以及適用與C的實際開發(fā)方式
2 回答錯誤流和輸出流有啥區(qū)別??????
1 回答標(biāo)準(zhǔn)輸出流合標(biāo)準(zhǔn)錯誤流
2 回答標(biāo)準(zhǔn)輸出流和標(biāo)準(zhǔn)錯誤流的區(qū)別
1 回答15:11秒,錯誤流和輸出流文件內(nèi)容為什么不一樣
3 回答我在mac 的unix下 參加本課程應(yīng)該也可以嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-12-02
1去掉return 1;提示報錯,繼續(xù)執(zhí)行。
2加上return 0;我發(fā)現(xiàn)和return 1;好像一樣啊,報錯不再執(zhí)行
2016-10-26
只要你把數(shù)據(jù)寫到stderr中,就是輸出錯誤流了,和返回什么沒有關(guān)系
2016-06-27
在前面的課程中老師講過了,在執(zhí)行C語言程序時,如果前一個步驟執(zhí)行錯誤,就不會往下執(zhí)行,如何判斷前一個程序是否出錯,是看執(zhí)行它以后返回值是否為0,如果為0,繼續(xù)執(zhí)行,如果不為0,則程序就不繼續(xù)執(zhí)行了。
所以,在編程時,我們要想到,當(dāng)程序沒有得到我們想要的東西時,我們需要不繼續(xù)執(zhí)行程序,所以應(yīng)返回一個非0的錯誤碼,
如果,像你提問的那樣,不加return 1,則即使程序判斷出錯誤了,也沒有相應(yīng)措施,它的判斷是沒意義的,
例如:本節(jié)講的這段語句中if外面再加一條語句,printf("你輸入的是%d\n",a);
????????? 如果if判斷我們輸入的是<0,但會因為沒有return 1;而繼續(xù)執(zhí)行,輸出結(jié)果中除了if語句內(nèi)的輸出,還有if外的輸出;
????????? 如果我們在if判斷語句中加了return 0;注意,是return 0;????? 雖然當(dāng)if判斷出輸入的是<0,也跳出程序了,也提示了,但是程序執(zhí)行這段語句后的返回值是0,如果這段程序后面還有程序,因為前一個程序的返回值為0,所以它會繼續(xù)執(zhí)行的。所以,if雖然判斷了,提示了,但沒有停止程序執(zhí)行。
??????? 所以,我認(rèn)為,return 一個非0整數(shù) ,不僅有提示作用,還有使程序停止運行的作用。
???????
?????????
2016-04-12
return 1是為了返回錯誤碼,便于知道程序出錯了,是為了讓程序員看的