所謂返回值,就是人們想要知道函數(shù)或者程序所得到 的結(jié)果而設(shè)計(jì)的函數(shù)或者程序結(jié)束時給出一個值。比如:我們編寫一個加法函數(shù),肯定想知道加完過后的結(jié)果是什么,那么我們就指定這個結(jié)果為該加法程序的返回值。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比漳平網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式漳平網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋漳平地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
關(guān)于返回值的返回:
1、函數(shù)調(diào)用語句本身代表其返回值:例如:fun(a);那么“fun(a)”就是這個返回值。
2、可以把返回值存到對應(yīng)類型的變量之中。例如:int a=fun(b);
3、返回值是多種多樣的,可以是各種各樣的,int short char double 等等,還可以是指針或者結(jié)構(gòu)體。在數(shù)據(jù)結(jié)構(gòu)的二叉樹部分,某一個函數(shù)的返回值是一個帶有兩個指針的結(jié)構(gòu)體。
return后接一個值。
在調(diào)用這個函數(shù)的函數(shù)里面,調(diào)用它的時候希望獲得一個值,如果不希望獲得這個值的時候,用void聲明就好。如果需要,比如說需要得到一個整形值
就聲明
int func()
在調(diào)用它的比如main里面
func()的作用就可以相當(dāng)于一個int型常數(shù)
比如外面定義了
int max(int a,int b)
{
return ab?a:b;
}
主函數(shù)里面是
main()
{
int A;
A=max(1,2);
}
這時候就是通過max計(jì)算 12 則return 一個1 ,12 則return一個2。很明顯12 所以這里max(1,2)就會return 一個 2
這時候主函數(shù)里的max(1,2)就相當(dāng)于一個常數(shù) 2
A=max(1,2)的作用就相當(dāng)于A=2
這個意思。
在C語言中,函數(shù)只能返回一個值,要返回兩個值,可以改換思路,通過其它方式做到。
1 建立數(shù)組,返回指針。
在要返回的兩個值類型相同時,可以用創(chuàng)建數(shù)組的方式,將要返回的值存在數(shù)組中,并返回數(shù)組首地址,這樣就可以實(shí)現(xiàn)返回兩個值的效果。
需要注意的是,要返回數(shù)組首地址,那么返回的值不可以是局部變量,有如下幾種是可以的:
a) 使用靜態(tài)局部變量存儲,并返回地址;
b) 使用全局變量存儲,返回地址;
c) 函數(shù)中動態(tài)分配內(nèi)存,并返回申請到的地址,此種方法需要注意,在使用后需要釋放;
d) 在參數(shù)中傳入數(shù)組地址,并返回。即返回的實(shí)際上是主調(diào)函數(shù)中的變量地址。
2 建立結(jié)構(gòu)體,返回結(jié)構(gòu)體變量。
將需要返回的值,寫成結(jié)構(gòu)體形式,并返回結(jié)構(gòu)體變量,這樣可以實(shí)現(xiàn)一個返回值中含有多組數(shù)據(jù)。
3 當(dāng)數(shù)據(jù)規(guī)模較小時,可以采用將小規(guī)模數(shù)據(jù)合并為大規(guī)模數(shù)據(jù)的方式,進(jìn)行返回。
比如,需要返回兩個char型數(shù)據(jù)時,可以通過返回一個short數(shù)據(jù),高地位分別存儲各自的值。
除以上方法外,還可以不使用返回值的方式,而是通過函數(shù)參數(shù)傳值,或者全局變量傳值等方式,將要返回的值回傳給主調(diào)函數(shù)。
所謂函數(shù)返回值是一個函數(shù)在運(yùn)算結(jié)束以后向調(diào)用它的母函數(shù)或者系統(tǒng)反饋一個值,這個值可以是各種變量類型.
舉個簡單的例子:
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過去,add經(jīng)過運(yùn)算后得到值7,通過return語句將得到的值返回給調(diào)用它的main函數(shù)供其使用,而在main中,返回值被用于給res賦值。
函數(shù)返回值就可以理解為解決一個問題以后得到的結(jié)論,把這個結(jié)論交給別人,就像寫在書上成為一個定理,來讓別人使用。
一個函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個變量。由于函數(shù)名變量通常用來把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱為返回值,函數(shù)的返回值類型是在定義函數(shù)時指定的。
函數(shù)可以有返回值,也可以沒有返回值。
1、沒有返回值的函數(shù):功能只是完成一個操作,應(yīng)將返回值類型定義為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ù)時指定的。
擴(kuò)展資料
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語言運(yùn)行結(jié)果中,你最先看到的是123。C語言printf函數(shù)的返回值是printf實(shí)際控制輸出的字符數(shù),那么打印的123 就是3個字符,因此printf("%d",i)返回的就是3,也就是B是3。
那么,A就可以寫為printf("%d",printf("%d",3));打印出3,即在運(yùn)行結(jié)果中,你緊接著會看到3。
而打印出的3是1個字符,因此A就是1,那么printf("%d\n",A); 實(shí)際上就是printf("%d\n",1); 打印出1。
參考資料來源:百度百科-返回值
文章名稱:C語言調(diào)用函數(shù)返回參數(shù) c語言函數(shù)的參數(shù)和返回值
網(wǎng)頁鏈接:http://jinyejixie.com/article0/dodosio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)建站、自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)