函數(shù)的返回值通過(guò)return語(yǔ)句來(lái)執(zhí)行,即return后的變量或表達(dá)式的值,就為該函數(shù)的返回值(你可以根據(jù)需要自定義返回什么值),而返回值的類(lèi)型是指該值你想要得到的類(lèi)型,比如return
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶(hù)提供滿(mǎn)意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十載時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶(hù),如成都電動(dòng)窗簾等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶(hù)的一致稱(chēng)揚(yáng)。
a;(a的類(lèi)型,你在函數(shù)體里定義的是int
a;但根據(jù)需要,你要的是一個(gè)float型的返回值),于是,這樣定義一個(gè)函數(shù):
float
函數(shù)名(參數(shù)列表)
{
int
a;
函數(shù)體;
……
return
a;
}
這樣,返回值a就變成了float型。
fgetc():成功時(shí)返回讀入的字節(jié)數(shù)。錯(cuò)誤或文件尾時(shí)返回EOF;
fputc():成功時(shí)返回寫(xiě)入的字節(jié)數(shù)。錯(cuò)誤時(shí)返回EOF;
fgets():成功時(shí)返回字符串地址,錯(cuò)誤或0讀入時(shí)返回NULL;
fputs():成功時(shí)返回一個(gè)非負(fù)整數(shù),錯(cuò)誤時(shí)返回EOF
fprintf():成功時(shí)返回寫(xiě)入的字節(jié)數(shù),錯(cuò)誤時(shí)返回負(fù)數(shù)(negative value)
fscanf():返回正確讀入項(xiàng)目(items)的個(gè)數(shù),錯(cuò)誤時(shí)返回EOF
fwrite():返回正確寫(xiě)入項(xiàng)目的個(gè)數(shù),錯(cuò)誤時(shí)返回0
fread():返回正確讀入項(xiàng)目的個(gè)數(shù),錯(cuò)誤時(shí)返回0
fseek():成功返回0,錯(cuò)誤返回-1。
函數(shù)的值(或稱(chēng)函數(shù)返回值)是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的值,可以通過(guò)return語(yǔ)句返回。
return語(yǔ)句的一般形式為:
return 表達(dá)式;
或者:
return (表達(dá)式);
例如:
return max;
return a+b;
return (100+200);
函數(shù)中可以有多個(gè) return 語(yǔ)句,但每次調(diào)用只能有一個(gè)return 語(yǔ)句被執(zhí)行,所以只有一個(gè)返回值。
一旦遇到 return 語(yǔ)句,不管后面有沒(méi)有代碼,函數(shù)立即運(yùn)行結(jié)束,將值返回。例如:
int func(){
int a=100, b=200, c;
return a+b;
return a*b;
return b/a;
}
返回值始終 a+b 的值,也就是300。
沒(méi)有返回值的函數(shù)為空類(lèi)型,用void進(jìn)行說(shuō)明。例如:
void func(){
printf("Hello world!\n");
}
一旦函數(shù)的返回值類(lèi)型被定義為 void,就不能再接收它的值了。例如,下面的語(yǔ)句是錯(cuò)誤的:
int a = func();
為了使程序有良好的可讀性并減少出錯(cuò), 凡不要求返回值的函數(shù)都應(yīng)定義為空類(lèi)型。
你可以這么理解,比如我們定義了一個(gè)函數(shù)fun(),如果這個(gè)函數(shù)有返回值,那么在調(diào)用程序里面(比如主函數(shù))就可以把這個(gè)函數(shù)當(dāng)成一個(gè)數(shù)使用;如果沒(méi)有返回值,那么通常他就是一個(gè)獨(dú)立的語(yǔ)句存在。
比如fun函數(shù)里面有個(gè)return 0;表示返回值是零,那么在調(diào)用函數(shù)里面就可以存在諸如
a=fun();b=a+fun();if(fun()=0{};……這類(lèi)的語(yǔ)句,表示a=0;b=a+0;if(00){};等等,當(dāng)然也可能是返回一個(gè)變量的值,你個(gè)指針的值是一樣的。
如果沒(méi)有return 語(yǔ)句,那么函數(shù)沒(méi)有返回值,調(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)