決定C語(yǔ)言中函數(shù)返回值類型的是定義函數(shù)時(shí)在函數(shù)首部所指定的類型。
創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、潘集網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為潘集等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
在C語(yǔ)言中,一個(gè)標(biāo)準(zhǔn)的函數(shù)定義語(yǔ)句塊必須包含函數(shù)返回值的類型標(biāo)識(shí)符、函數(shù)名、形參類型及數(shù)量、函數(shù)體、返回值表達(dá)式。如果函數(shù)返回值類型為 void (即無(wú)返回值)。
函數(shù)定義示例(其中int是函數(shù)返回值類型):
int fun(int a, int b){
return ab ? a : b;
}
擴(kuò)展資料
C語(yǔ)言函數(shù)類型種類舉例介紹:
1、void 空類型,表示該函數(shù)無(wú)返回值;
2、int 整形,表示該函數(shù)返回int整形數(shù)值;
3、double? 雙精度,函數(shù)返回雙精度數(shù)值;
4、char 字符串,函數(shù)返回字符串;????
5、long 長(zhǎng)整型,函數(shù)返回長(zhǎng)整型數(shù)值;
在C語(yǔ)言中,主函數(shù)必須要有返回值。
main 函數(shù)的返回值類型必須是 int ,這樣返回值才能傳遞給程序的激活者(如操作系統(tǒng))。如果 main 函數(shù)的最后沒有寫 return 語(yǔ)句的話,C99 規(guī)定編譯器要自動(dòng)在生成的目標(biāo)文件中(如 exe 文件)加入return 0; ,表示程序正常退出。
在C語(yǔ)言標(biāo)準(zhǔn)中強(qiáng)制要求main函數(shù)的返回值類型為int,main函數(shù)的返回值是傳遞給操作系統(tǒng),讓操作系統(tǒng)判斷程序的執(zhí)行情況(是正常結(jié)束還是出現(xiàn)異常)。
擴(kuò)展資料:
在C和C++中,不接收任何參數(shù)也不返回任何信息的函數(shù)原型為“void foo(void);”。正是因?yàn)檫@個(gè),所以很多人都誤認(rèn)為如果不需要程序返回值時(shí)可以把main函數(shù)定義成void main(void) 或void main()。然而這是錯(cuò)誤的。
main函數(shù)的返回值應(yīng)該定義為int類型,雖然在一些編譯器中,void main可以通過(guò)編譯(如vc6),但并非所有編譯器都支持void main,因?yàn)闃?biāo)準(zhǔn)中從來(lái)沒有定義過(guò)void main。g++3.2、dev C等環(huán)境中如果main函數(shù)的返回值不是int類型,根本無(wú)法通過(guò)編譯。而gcc3.2則會(huì)發(fā)出警告。
你可以這么理解,比如我們定義了一個(gè)函數(shù)fun(),如果這個(gè)函數(shù)有返回值,那么在調(diào)用程序里面(比如主函數(shù))就可以把這個(gè)函數(shù)當(dāng)成一個(gè)數(shù)使用;如果沒有返回值,那么通常他就是一個(gè)獨(dú)立的語(yǔ)句存在。
比如fun函數(shù)里面有個(gè)return 0;表示返回值是零,那么在調(diào)用函數(shù)里面就可以存在諸如
a=fun();b=a+fun();if(fun()=0{};……這類的語(yǔ)句,表示a=0;b=a+0;if(00){};等等,當(dāng)然也可能是返回一個(gè)變量的值,你個(gè)指針的值是一樣的。
如果沒有return 語(yǔ)句,那么函數(shù)沒有返回值,調(diào)用函數(shù)里面就不能把他當(dāng)做一個(gè)數(shù)值來(lái)使用,會(huì)出現(xiàn):
fun();單獨(dú)成句的語(yǔ)句,在fun()里面可能進(jìn)行了一些操作,但不需要結(jié)果。
C語(yǔ)言自帶的函數(shù)通常都有返回值,計(jì)算函數(shù)返回計(jì)算結(jié)果,操作函數(shù)返回操作結(jié)果(成功返回1,失敗返回0)
int aFun()//函數(shù)定義,int 表示函數(shù)定義的類型
{
long a;
int b;
//如果返回是這樣,return a; 錯(cuò)誤,因?yàn)榉祷刂档念愋团c定義的類型不一致
//如果返回是這樣,return b; 正確,因?yàn)榉祷刂档念愋团c定義的類型一致
}
,所以,函數(shù)返回值的類型是由定義該函數(shù)時(shí)所指定的函數(shù)定義類型決定的!
當(dāng)然是由函數(shù)決定的?。?/p>
比如聲明一個(gè)函數(shù)
int prot(int *, int);
那么這個(gè)函數(shù)的返回值int型返回值。
可以寫成return XX --XX是int型,如果這里你寫成其它型的(如A說(shuō)的),編譯會(huì)報(bào)錯(cuò)
再就是函數(shù)聲明寫成prot(int *, int), //不給他聲明返回類型。
PC機(jī)會(huì)隱式的讓返回值為int型,如果你return 0.32, 返回去的值其實(shí)是0.
C語(yǔ)言規(guī)定,函數(shù)返回值的類型由函數(shù)首部定義的類型決定。函數(shù)返回值應(yīng)與首部定義的類型一致,如若不一致,則自動(dòng)將返回值強(qiáng)制轉(zhuǎn)換為函數(shù)首部定義的類型。
沒有定義類型時(shí)默認(rèn)為int型。也就是說(shuō)你的函數(shù)是什么類型,返回值就是什么類型。
簡(jiǎn)介
在調(diào)用函數(shù)時(shí),如果需要從被調(diào)函數(shù)返回一個(gè)值供主調(diào)函數(shù)使用,那么返回值類型必須定義成非 void 型。此時(shí)被調(diào)函數(shù)中必須包含 return 語(yǔ)句,而且 return 后面必須要有返回值,否則就是語(yǔ)法錯(cuò)誤。
一個(gè)函數(shù)中可以有多個(gè) return 語(yǔ)句,但并不是所有的 return 語(yǔ)句都起作用。執(zhí)行到哪個(gè) return 語(yǔ)句,就是哪個(gè) return 語(yǔ)句起作用,該 return 語(yǔ)句后的其他語(yǔ)句都不會(huì)執(zhí)行。