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