大家好,今天來為大家分享return0有必要用嗎的一些知識(shí)點(diǎn),和0會(huì)怎么樣的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可以解決您的問題,接下來我們就一起來看看吧!
C語言中return和return0有什么區(qū)別
main函數(shù)里的return用來向其執(zhí)行環(huán)境返回狀態(tài),一般來說,返回值為0表示終止,返回值為非0表示異常情況或出錯(cuò)結(jié)束條件(K&RTheC中這樣描述的)。 如果是調(diào)用函數(shù)的話,return返回函數(shù)的結(jié)果。大概就是這樣
c語言return語句什么時(shí)候用
當(dāng)你定義函數(shù)的時(shí)候才要用,有些函數(shù)有返回值,也就是調(diào)用一個(gè)函數(shù)之后,該函數(shù)返回一個(gè)值給你。
如intfun(inta)這個(gè)函數(shù)就要用return,而且return后面跟的變量或字面常量應(yīng)該是整形才對(duì),如果是不能自動(dòng)轉(zhuǎn)換成整形的數(shù)據(jù)如double型的,系統(tǒng)就會(huì)報(bào)錯(cuò),但是如果return一個(gè)short型的變量,該變量會(huì)被自動(dòng)轉(zhuǎn)化為int型變量。
總之,return后面跟的變量或者表達(dá)式結(jié)果的類型要與函數(shù)的類型一致。
現(xiàn)在知道為什么intmain()最后要return0;了吧(其實(shí)為什么是0我也不知道,應(yīng)該有什么含義吧)
函數(shù)類型之中,有一個(gè)類型叫做空類型,也就是void
如voidfun(inta)
這個(gè)函數(shù)里面可以用return(后面不跟數(shù)據(jù)),也可以把return語句省略。這時(shí)函數(shù)調(diào)用到最后一個(gè)右大括號(hào)時(shí)結(jié)束。
一般用void的話就是沒有返回值和不需要返回值的了,如調(diào)用一個(gè)輸出函數(shù),這個(gè)函數(shù)就沒必要返回了,事實(shí)上這個(gè)函數(shù)只管輸出就好了,也沒有什么值要返回的,另一種是用指針傳址的時(shí)候,因?yàn)槟銈鞯氖堑刂罚瘮?shù)根據(jù)你的地址直接對(duì)數(shù)據(jù)進(jìn)行操作了,這是就不需要返回值了。
因?yàn)閷?duì)數(shù)據(jù)的操作在函數(shù)里已經(jīng)進(jìn)行了(返回值的作用一般是賦值或者作為參數(shù)的賦值的話可以對(duì)變量直接操作,也就是用指針操作,也可以把返回值賦值給變量)
另外,return語句還有另一個(gè)功能就是結(jié)束函數(shù)調(diào)用,有時(shí)候,當(dāng)某種情況發(fā)生的時(shí)候(或者說滿足一定情況的時(shí)候),必須結(jié)束程序,如當(dāng)你申請(qǐng)動(dòng)態(tài)空間失敗的時(shí)候,由于這是一個(gè)嚴(yán)重錯(cuò)誤,所以必須強(qiáng)制終止程序,這時(shí)就可以用return語句來提前結(jié)束運(yùn)行。
return0和return1的區(qū)別
在于它們的返回值不同。return0表示函數(shù)執(zhí)行成功并且沒有任何錯(cuò)誤,返回值為0;而return1則表示函數(shù)執(zhí)行不成功或者有錯(cuò)誤發(fā)生,返回值為1。通常在編程中,函數(shù)的返回值會(huì)根據(jù)具體情況進(jìn)行定義,用以給調(diào)用者提供執(zhí)行結(jié)果或錯(cuò)誤信息。值得注意的是,在一些編程語言中,函數(shù)的返回值可以是其它數(shù)據(jù)類型,如字符串、對(duì)象等。
為什么大多數(shù)程序主函數(shù)都return0不return1
main函數(shù)是一個(gè)程序的入口,在C/C++語言的編程規(guī)范中,是需要有一個(gè)返回值的。而且這個(gè)返回值是可以被操作系統(tǒng)或者其它程序獲取的,獲取方式后面會(huì)介紹。在業(yè)界,大家約定俗成認(rèn)為main的正常返回值是0,而非0的返回值代表了各類錯(cuò)誤。
但是如果硬要寫一個(gè)沒有返回值的main函數(shù),多數(shù)時(shí)候也是能編譯通過執(zhí)行成功的。只是這種做法很不受鼓勵(lì)。
voidmain()
{
printf("hello\n");
}
上面這個(gè)函數(shù)是可以編譯通過執(zhí)行的。但是沒有返回值。
正經(jīng)的編程規(guī)范,main函數(shù)是需要返回值的,而且最好遵守一般的約定:0代表程序執(zhí)行正常退出,非0值代表各類錯(cuò)誤。例如,可以用返回值1代表參數(shù)不正確,返回值2代表內(nèi)存分配失敗之類的。
有時(shí)人們會(huì)忘了在intmain()的函數(shù)中寫"return0"這句,不少編譯器會(huì)直接在程序尾部加上“return0"這一句,強(qiáng)行賦一個(gè)為0的返回值。這說明,編譯器都認(rèn)為main的正常返回值應(yīng)該是0。
main函數(shù)的返回值,是可以被系統(tǒng)讀到的,獲得的方式有幾種。例如一些編程工具IDE會(huì)在程序執(zhí)行完畢后,直接顯示返回值。比較常用通用的是system調(diào)用,使用它需要聲明cstdlib。
例如有一個(gè)程序叫hw,我們可以在另一程序中這樣調(diào)用它:
inti;
i=system("hw");
這時(shí)i的值,就是hw的main函數(shù)的返回值。可以根據(jù)這個(gè)值進(jìn)行操作。
在linux的shell中,調(diào)用程序后,$?的值就是返回值。
由于main函數(shù)的值可能被系統(tǒng)與其它程序使用,最好遵守返回值規(guī)范。一是不要寫沒有返回值的voidmain()函數(shù),二是把0當(dāng)作正常的返回值。
為什么在c語言里,int main中不加return0也可以
因?yàn)閙ain函數(shù)是主函數(shù),在程序執(zhí)行過程是在循環(huán),并不需要返回,也就是沒有返回值并不影響函數(shù)的正確性。應(yīng)該是這樣的,我也不是很理解。
return0在c語言中什么時(shí)候加
函數(shù)的最后一條的語句使用return
關(guān)于return0有必要用嗎和0會(huì)怎么樣的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。