函數(shù)返回值的意思是將函數(shù)實(shí)現(xiàn)的結(jié)果返回給調(diào)用者。
創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供豐城企業(yè)網(wǎng)站建設(shè),專(zhuān)注與做網(wǎng)站、成都網(wǎng)站制作、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為豐城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
按標(biāo)準(zhǔn)來(lái)說(shuō),C的main函數(shù)是需要有返回值的。標(biāo)準(zhǔn)中main函數(shù)返回類(lèi)型是int的,所以需要一個(gè)返回值。但是由于歷史原因,很多地方可以看到?jīng)]有返回值的main。
比如直接main()或者說(shuō)void main() 但是這樣一般編譯器也不會(huì)認(rèn)為錯(cuò)誤,不過(guò)建議還是寫(xiě)標(biāo)準(zhǔn)的C的main函數(shù),最好有一個(gè)返回值,0表示正常退出。
擴(kuò)展資料:
需要說(shuō)明的是:
1、一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成。
2、每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成。
3、一個(gè)源程序不論由多穗信穗少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù)。是整個(gè)程序的猜卜入口。
4、源程序中可以有預(yù)處理命令(包括include 命令,ifdef、ifndef命令、define命令),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。
5、坦模每一個(gè)說(shuō)明,每一個(gè)語(yǔ)句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“}”之后不能加分號(hào)。(結(jié)構(gòu)體、聯(lián)合體、枚舉型的聲明的“}”后要加“ ;”。)
6、標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來(lái)間隔。
參考資料來(lái)源:百度百科-函數(shù)
一個(gè)函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個(gè)變量。由于函數(shù)名變量通常用來(lái)把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱(chēng)為返回值,函數(shù)的返回值類(lèi)型是在定義函數(shù)時(shí)指定的。
函數(shù)可以有返回值,也可以沒(méi)有返回值。
1、沒(méi)有返回值的函數(shù):功能只是完成一個(gè)操作,應(yīng)將返回值類(lèi)型定義為void,函數(shù)體內(nèi)可沒(méi)有return語(yǔ)句。
2、有返回值的函數(shù)讓棗蘆:函數(shù)的最后會(huì)有一個(gè)返巖基回值return,可以用來(lái)獲取該函數(shù)執(zhí)行結(jié)果返回給該函數(shù),讓外部調(diào)用該函數(shù)的。
一個(gè)函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個(gè)變量。由于函數(shù)名變量通常用來(lái)把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱(chēng)為返回值,函數(shù)的返回值類(lèi)型是在定義函數(shù)時(shí)指定的。
擴(kuò)展資料
C程序中的print函數(shù):
是這樣寫(xiě)的:printf("%d\n",printf("%d",printf("%d",i)));
一共有三個(gè)printf函數(shù),我們可以使用一些代號(hào)來(lái)簡(jiǎn)化這個(gè)printf函數(shù),如下:
代號(hào)A: printf("%d",printf("%d",i));
代號(hào)B: printf("%d",i)
則C程序代碼可以簡(jiǎn)化為:printf("%d\n",A); 那么我們就先來(lái)求A。而A,又可以簡(jiǎn)化為:printf("%d",B);那么就先來(lái)求B。
B是 printf("%d",i),打印出“123”,即在C語(yǔ)言運(yùn)行結(jié)果坦帶中,你最先看到的是123。C語(yǔ)言printf函數(shù)的返回值是printf實(shí)際控制輸出的字符數(shù),那么打印的123 就是3個(gè)字符,因此printf("%d",i)返回的就是3,也就是B是3。
那么,A就可以寫(xiě)為printf("%d",printf("%d",3));打印出3,即在運(yùn)行結(jié)果中,你緊接著會(huì)看到3。
而打印出的3是1個(gè)字符,因此A就是1,那么printf("%d\n",A); 實(shí)際上就是printf("%d\n",1); 打印出1。
參考資料來(lái)源:百度百科-返回值
函液簡(jiǎn)數(shù)是不能直接返回兩個(gè)值的,不過(guò)可以通過(guò)數(shù)組,列表,鏈表等方式,返回多個(gè)值。
例如 int a[] f(),這個(gè)shu函數(shù)返回值就是一個(gè)整型的數(shù)組,如果你要返回兩個(gè)值,可以定義數(shù)組長(zhǎng)度為2,a[0]保存第一個(gè)值,a[1]保存第二個(gè)值。
int fun(int a, int b, int *c, int *d);
參數(shù)是a,b,返回值是c,d,c和d用指針傳進(jìn)去。
c,d可以是其他參數(shù)類(lèi)團(tuán)陵型,也可以是數(shù)據(jù)結(jié)構(gòu)。
函數(shù)返回值可以用于返回error。
擴(kuò)展資料:
如果沒(méi)有返回值類(lèi)型名為"void", 整數(shù)類(lèi)型int 類(lèi)型返回值為整數(shù)類(lèi)型int,以此類(lèi)推……
類(lèi)型名有:void int long float int* long* float* ……
C++中函數(shù)的調(diào)用:函數(shù)必須聲明后才可以被調(diào)用。調(diào)用格式為:函數(shù)名(實(shí)參)
調(diào)用時(shí)函數(shù)名后的小括號(hào)中的實(shí)參必須和聲明函數(shù)時(shí)的函數(shù)括號(hào)中的形參個(gè)數(shù)相同。
有返回值的函數(shù)可以進(jìn)塌埋戚行計(jì)算,也可以做為右值進(jìn)行賦值。
參考資料來(lái)源:百度百科-函數(shù)
C++可以通過(guò)異常處理的throw和catch來(lái)實(shí)現(xiàn)從子函數(shù)的子函數(shù)直接返回主函數(shù),匯編語(yǔ)言可以用jmp指令跳轉(zhuǎn)實(shí)現(xiàn)這個(gè)需求。
C語(yǔ)言主要靠函數(shù)調(diào)用和return在函數(shù)之間切換,很難做到在多層調(diào)用中直接返回主函數(shù)。掘運(yùn)雖然goto語(yǔ)句可以無(wú)條件跳轉(zhuǎn),但是必須在同一個(gè)函數(shù)中使用。
因此解決的方法也是用一個(gè)特茄物殊的值作為需要返回的標(biāo)志,然后在兩層調(diào)用函數(shù)中都遇到該值就返回,但是這個(gè)方法也有兩個(gè)前提:
1)你的兩個(gè)子函數(shù)都是由返回值的函數(shù)
2)你選擇的特殊判納梁值和函數(shù)正常的返回的取值不會(huì)沖突,不會(huì)引起二義性。
因此建議你的這個(gè)問(wèn)題還是用C++ 的異常去解決比較好。