return后接一個(gè)值。\r\n在調(diào)用這個(gè)函數(shù)的函數(shù)里面,調(diào)用它的時(shí)候希望獲得一個(gè)值,如果不希望獲得這個(gè)值的時(shí)候,用void聲明就好。如果需要,比如說(shuō)需要得到一個(gè)整形值\r\n就聲明\r\nint func()\r\n在調(diào)用它的比如main里面\r\nfunc()的作用就可以相當(dāng)于一個(gè)int型常數(shù)\r\n比如外面定義了\r\nint max(int a,int b)\r\n{\r\nreturn ab?a:b;\r\n}\r\n主函數(shù)里面是\r\nmain()\r\n{\r\nint A;\r\nA=max(1,2);\r\n}\r\n這時(shí)候就是通過(guò)max計(jì)算 12 則return 一個(gè)1 ,1
10年的玉林網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整玉林建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“玉林網(wǎng)站設(shè)計(jì)”,“玉林網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
回答于?2022-11-16
無(wú)返回值的函數(shù),只進(jìn)行某種操作。
有返回值的函數(shù),可以將某個(gè)變量或指針?lè)祷仄湔{(diào)用函數(shù)。
兩者形式上的區(qū)別如下:
無(wú)返回值:void
fun1();
有返回值:int
fun2();
調(diào)用的區(qū)別:
無(wú)返回值:
main()
{
……
fun1();
……
}
有返回值:
main()
{
int
a;
……
a=fun2();
……
}
調(diào)用函數(shù)的return返回給main函數(shù)。main函數(shù)若return 0,那么這個(gè)0返回給計(jì)算機(jī),表示程序運(yùn)行成功。
所謂函數(shù)返回值是一個(gè)函數(shù)在運(yùn)算結(jié)束以后向調(diào)用它的母函數(shù)或者系統(tǒng)反饋一個(gè)值,這個(gè)值可以是各種變量類(lèi)型.
舉個(gè)簡(jiǎn)單的例子:
int add(int a,int b)
{
return (a+b);
}
int main()
{
int res;
res=add(3,4);
printf("%d",res);
return 0;
}
在主函數(shù)main中調(diào)用子函數(shù)add,并傳遞參數(shù)3和4過(guò)去,add經(jīng)過(guò)運(yùn)算后得到值7,通過(guò)return語(yǔ)句將得到的值返回給調(diào)用它的main函數(shù)供其使用,而在main中,返回值被用于給res賦值。
函數(shù)返回值就可以理解為解決一個(gè)問(wèn)題以后得到的結(jié)論,把這個(gè)結(jié)論交給別人,就像寫(xiě)在書(shū)上成為一個(gè)定理,來(lái)讓別人使用。
①為什么需要return?
為了回答這個(gè)問(wèn)題,
我打算用 模塊思維 來(lái)解釋。
②定義模塊(形參模塊)
定義函數(shù):f(s)(a,b)
滿足公式:s=a+b
函數(shù)名:f(s)
形參: a,b(公式中的 變量 )
函數(shù)返回值:return s
③調(diào)用模塊(實(shí)參模塊)
主函數(shù):main()表示用戶自己編寫(xiě)的部分
調(diào)用函數(shù):f(s)(1,2)
滿足公式:x=f(s)(1,2)
函數(shù)名:f(s)和定義函數(shù)一致,產(chǎn)生調(diào)用
實(shí)參 :1,2( 賦值 給公式的值)
求值:printf("%d\n",x),求x的值?
④值的傳遞過(guò)程
調(diào)用模塊 中調(diào)用函數(shù)x=f(s)(1,2)
將實(shí)參1和2的值賦值給
定義模塊 中的形參a和b
(實(shí)參到形參是單向傳遞,不可逆)
定義模塊計(jì)算出s=a+b=1+2=3
定義模塊 中的return s
將s的值賦值給
調(diào)用模塊 中的函數(shù)f(s)(1,2)
即x=f(s)(1,2)=s=3
~
return s的作用
就是將定義模塊中的s
賦值 給調(diào)用模塊中的調(diào)用函數(shù)
如果沒(méi)有return s
調(diào)用模塊中的調(diào)用函數(shù)將永遠(yuǎn)沒(méi)有定值
即所求x 無(wú)定值
這一點(diǎn)和數(shù)學(xué)不一樣,
數(shù)學(xué)中
同一函數(shù)名的值是 通用 的,
C語(yǔ)言中
定義函數(shù)和調(diào)用函數(shù)的值是 隔離 的,
盡管函數(shù)名一樣
如果不賦值,調(diào)用函數(shù)永遠(yuǎn)無(wú)定值。
你可以這么理解,比如我們定義了一個(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)