函數(shù)的返回值通過return語(yǔ)句來執(zhí)行,即return后的變量或表達(dá)式的值,就為該函數(shù)的返回值(你可以根據(jù)需要自定義返回什么值),而返回值的類型是指該值你想要得到的類型,比如return
創(chuàng)新互聯(lián)主營(yíng)樺川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),樺川h5成都小程序開發(fā)搭建,樺川網(wǎng)站營(yíng)銷推廣歡迎樺川等地區(qū)企業(yè)咨詢
a;(a的類型,你在函數(shù)體里定義的是int
a;但根據(jù)需要,你要的是一個(gè)float型的返回值),于是,這樣定義一個(gè)函數(shù):
float
函數(shù)名(參數(shù)列表)
{
int
a;
函數(shù)體;
……
return
a;
}
這樣,返回值a就變成了float型。
在函數(shù)中,如果碰到return 語(yǔ)句,那么程序就會(huì)返回調(diào)用該函數(shù)的下一條語(yǔ)句執(zhí)行,也就是說跳出函數(shù)的執(zhí)行,回到原來的地方繼續(xù)執(zhí)行下去。但是如果是在主函數(shù)中碰到return語(yǔ)句,那么整個(gè)程序就會(huì)停止,退出程序的執(zhí)行。
函數(shù)的返回值是由返回語(yǔ)句return實(shí)現(xiàn)的,函數(shù)執(zhí)行的最后一個(gè)操作就是返回,返回的意義是:
(1)子程序函數(shù)返回主調(diào)函數(shù),宣告函數(shù)的一次執(zhí)行結(jié)束,在調(diào)用期間所分配的變量單元被撤消;
(2)送函數(shù)值到調(diào)用表達(dá)式中,當(dāng)然這一點(diǎn)并不是必需的,因?yàn)橛行┖瘮?shù)有返回值,有些函數(shù)沒有返回值。
擴(kuò)展資料:
c語(yǔ)言中return作為英語(yǔ)單詞的含義:
return,英文單詞,動(dòng)詞、名詞、形容詞,作動(dòng)詞時(shí)意為“返回;(尤指感覺)恢復(fù);把……退回;以……相報(bào);(網(wǎng)球等)回?fù)簦ㄇ颍保髅~時(shí)意為“返回;恢復(fù);歸還;(網(wǎng)球等)回?fù)羟颍槐煌嘶氐臇|西;回路導(dǎo)線”,作形容詞時(shí)意為“來回的;巡回的;報(bào)答的;回程的;返回的”。
參考資料來源:百度百科-return
參考資料來源:百度百科-return
當(dāng)一個(gè)函數(shù)不是void型的時(shí)候就必須有一個(gè)返回值(main)函數(shù)除外,這個(gè)返回值就看你這個(gè)函數(shù)本身是什么型的。返回值經(jīng)常用來標(biāo)志一些東西,比如一個(gè)游戲程序中的函數(shù)int
win()用來判斷輸贏,輸返回0,贏返回1,然后主調(diào)函數(shù)可以根據(jù)它的返回值做相應(yīng)的處理,比如這樣的句子
if(win())
speed++;(進(jìn)入下一關(guān))。
一個(gè)函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個(gè)變量。由于函數(shù)名變量通常用來把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱為返回值,函數(shù)的返回值類型是在定義函數(shù)時(shí)指定的。
函數(shù)可以有返回值,也可以沒有返回值。
1、沒有返回值的函數(shù):功能只是完成一個(gè)操作,應(yīng)將返回值類型定義為void,函數(shù)體內(nèi)可沒有return語(yǔ)句。
2、有返回值的函數(shù):函數(shù)的最后會(huì)有一個(gè)返回值return,可以用來獲取該函數(shù)執(zhí)行結(jié)果返回給該函數(shù),讓外部調(diào)用該函數(shù)的。
一個(gè)函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個(gè)變量。由于函數(shù)名變量通常用來把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱為返回值,函數(shù)的返回值類型是在定義函數(shù)時(shí)指定的。
擴(kuò)展資料
C程序中的print函數(shù):
是這樣寫的:printf("%d\n",printf("%d",printf("%d",i)));
一共有三個(gè)printf函數(shù),我們可以使用一些代號(hào)來簡(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); 那么我們就先來求A。而A,又可以簡(jiǎn)化為:printf("%d",B);那么就先來求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就可以寫為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。
參考資料來源:百度百科-返回值
函數(shù)的值(或稱函數(shù)返回值)是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的值,可以通過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ǔ)句,不管后面有沒有代碼,函數(shù)立即運(yùn)行結(jié)束,將值返回。例如:
int func(){
int a=100, b=200, c;
return a+b;
return a*b;
return b/a;
}
返回值始終 a+b 的值,也就是300。
沒有返回值的函數(shù)為空類型,用void進(jìn)行說明。例如:
void func(){
printf("Hello world!\n");
}
一旦函數(shù)的返回值類型被定義為 void,就不能再接收它的值了。例如,下面的語(yǔ)句是錯(cuò)誤的:
int a = func();
為了使程序有良好的可讀性并減少出錯(cuò), 凡不要求返回值的函數(shù)都應(yīng)定義為空類型。
你可以這么理解,比如我們定義了一個(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ù)值來使用,會(huì)出現(xiàn):
fun();單獨(dú)成句的語(yǔ)句,在fun()里面可能進(jìn)行了一些操作,但不需要結(jié)果。
C語(yǔ)言自帶的函數(shù)通常都有返回值,計(jì)算函數(shù)返回計(jì)算結(jié)果,操作函數(shù)返回操作結(jié)果(成功返回1,失敗返回0)