一個函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個變量。由于函數(shù)名變量通常用來把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱為返回值,函數(shù)的返回值類型是在定義函數(shù)時指定的。
主要從事網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、wap網(wǎng)站建設(手機版網(wǎng)站建設)、成都響應式網(wǎng)站建設公司、程序開發(fā)、微網(wǎng)站、小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了豐富的網(wǎng)站設計制作、做網(wǎng)站、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設項目的能力。
函數(shù)可以有返回值,也可以沒有返回值。
1、沒有返回值的函數(shù):功能只是完成一個操作,應將返回值類型定義為void,函數(shù)體內(nèi)可沒有return語句。
2、有返回值的函數(shù):函數(shù)的最后會有一個返回值return,可以用來獲取該函數(shù)執(zhí)行結(jié)果返回給該函數(shù),讓外部調(diào)用該函數(shù)的。
一個函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個變量。由于函數(shù)名變量通常用來把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱為返回值,函數(shù)的返回值類型是在定義函數(shù)時指定的。
擴展資料
C程序中的print函數(shù):
是這樣寫的:printf("%d\n",printf("%d",printf("%d",i)));
一共有三個printf函數(shù),我們可以使用一些代號來簡化這個printf函數(shù),如下:
代號A: printf("%d",printf("%d",i));
代號B: printf("%d",i)
則C程序代碼可以簡化為:printf("%d\n",A); 那么我們就先來求A。而A,又可以簡化為:printf("%d",B);那么就先來求B。
B是 printf("%d",i),打印出“123”,即在C語言運行結(jié)果中,你最先看到的是123。C語言printf函數(shù)的返回值是printf實際控制輸出的字符數(shù),那么打印的123 就是3個字符,因此printf("%d",i)返回的就是3,也就是B是3。
那么,A就可以寫為printf("%d",printf("%d",3));打印出3,即在運行結(jié)果中,你緊接著會看到3。
而打印出的3是1個字符,因此A就是1,那么printf("%d\n",A); 實際上就是printf("%d\n",1); 打印出1。
參考資料來源:百度百科-返回值
C語言,有返回值的處理,可以分兩種情況,1,返回一個值,可以用:
返回類型 函數(shù)名([參數(shù)列表])
{
return (返回值);
}
多個返回值,可以返回一個自定義結(jié)構體,
返回結(jié)構體 函靈敏名([參數(shù)列表])
{
return (結(jié)構體名);
}
也可用指針的形式,直接操作,此時,接收返回值變量的地址,可以以指針的形式,傳遞給函數(shù)),進行操作,具體方法和實例.
無參無返回值類型函數(shù)是 void ss(void)
無參有返回值類型函數(shù)是 int ss(void)這就表示函數(shù)的返回值是int類型的,你可以改為你想要的任何類型
有參有返回值類型函數(shù)是 int ss(int x,int y)這就表示函數(shù)的返回值是int類型的,且函數(shù)具有兩個參數(shù),且兩個參數(shù)都是int類型的。當然你可以改為你想要的任何在C里面支持的類型。。
實際上參數(shù)就是你需要傳遞給函數(shù)進行處理的值,返回值就是指你的函數(shù)當處理完傳遞的參數(shù)過后需要傳回給調(diào)用函數(shù)的一個值得。。
int test()
{
return 1;
}
void main()
{償害稗轎織計半襲報陋
if(test() == 1)
printf(" return 1 \n");
else
printf(" return 0 \n");
}
①為什么需要return?
為了回答這個問題,
我打算用 模塊思維 來解釋。
②定義模塊(形參模塊)
定義函數(shù):f(s)(a,b)
滿足公式:s=a+b
函數(shù)名:f(s)
形參: a,b(公式中的 變量 )
函數(shù)返回值:return s
③調(diào)用模塊(實參模塊)
主函數(shù):main()表示用戶自己編寫的部分
調(diào)用函數(shù):f(s)(1,2)
滿足公式:x=f(s)(1,2)
函數(shù)名:f(s)和定義函數(shù)一致,產(chǎn)生調(diào)用
實參 :1,2( 賦值 給公式的值)
求值:printf("%d\n",x),求x的值?
④值的傳遞過程
調(diào)用模塊 中調(diào)用函數(shù)x=f(s)(1,2)
將實參1和2的值賦值給
定義模塊 中的形參a和b
(實參到形參是單向傳遞,不可逆)
定義模塊計算出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ù)
如果沒有return s
調(diào)用模塊中的調(diào)用函數(shù)將永遠沒有定值
即所求x 無定值
這一點和數(shù)學不一樣,
數(shù)學中
同一函數(shù)名的值是 通用 的,
C語言中
定義函數(shù)和調(diào)用函數(shù)的值是 隔離 的,
盡管函數(shù)名一樣
如果不賦值,調(diào)用函數(shù)永遠無定值。
函數(shù)的返回值通過return語句來執(zhí)行,即return后的變量或表達式的值,就為該函數(shù)的返回值(你可以根據(jù)需要自定義返回什么值),而返回值的類型是指該值你想要得到的類型,比如return
a;(a的類型,你在函數(shù)體里定義的是int
a;但根據(jù)需要,你要的是一個float型的返回值),于是,這樣定義一個函數(shù):
float
函數(shù)名(參數(shù)列表)
{
int
a;
函數(shù)體;
……
return
a;
}
這樣,返回值a就變成了float型。