一個函數(shù)的函數(shù)名既是該函數(shù)的代表,也是一個變量。由于函數(shù)名變量通常用來把函數(shù)的處理結(jié)果數(shù)據(jù)返回給調(diào)用函數(shù),即遞歸調(diào)用,所以一般把函數(shù)名變量稱為返回值,函數(shù)的返回值類型是在定義函數(shù)時指定的。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供天津網(wǎng)站建設(shè)、天津做網(wǎng)站、天津網(wǎng)站設(shè)計、天津網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、天津企業(yè)網(wǎng)站模板建站服務(wù),10多年天津做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
函數(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ù),那么打印的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); 實際上就是printf("%d\n",1); 打印出1。
參考資料來源:百度百科-返回值
接樓上
所以,你的子函數(shù)定義應(yīng)該是整形的,不能使雙精度型的!因為你要返回的是數(shù)組的地址!
函數(shù)是不能直接返回兩個值的,不過可以通過數(shù)組,列表,鏈表等方式,返回多個值。
例如 int a[] f(),這個shu函數(shù)返回值就是一個整型的數(shù)組,如果你要返回兩個值,可以定義數(shù)組長度為2,a[0]保存第一個值,a[1]保存第二個值。
int fun(int a, int b, int *c, int *d);
參數(shù)是a,b,返回值是c,d,c和d用指針傳進(jìn)去。
c,d可以是其他參數(shù)類型,也可以是數(shù)據(jù)結(jié)構(gòu)。
函數(shù)返回值可以用于返回error。
擴(kuò)展資料:
如果沒有返回值類型名為"void", 整數(shù)類型int 類型返回值為整數(shù)類型int,以此類推……
類型名有:void int long float int* long* float* ……
C++中函數(shù)的調(diào)用:函數(shù)必須聲明后才可以被調(diào)用。調(diào)用格式為:函數(shù)名(實參)
調(diào)用時函數(shù)名后的小括號中的實參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。
有返回值的函數(shù)可以進(jìn)行計算,也可以做為右值進(jìn)行賦值。
參考資料來源:百度百科-函數(shù)
只能用指針,如 int* cal();返回一個數(shù)組的首地址,根據(jù)首地址,將數(shù)組的元素依次輸出
#include stdio.h
#define MIN(x,y)
int * add_1();
main()
{
int * p = add_1();
int b[5];
for(int i=0;i5;i++)
{
b[i] = *(p+i);
}
for(i=0;i5;i++)
{
printf("%d",b[i]);
}
}
int * add_1()
{
int static a[5]={1,2,3,4,5};
return a;
}
擴(kuò)展資料:
注意事項
一、該數(shù)組不能是返回函數(shù)的局部變量數(shù)組,因為局部變量數(shù)組在退出函數(shù)后會被釋放。
可以是全局變量,靜態(tài)局部變量,動態(tài)分配內(nèi)存,以及從函數(shù)參數(shù)傳過來的數(shù)組地址。
二、返回指針時,無法返回長度,所以需要其它方式傳回數(shù)組長度,以下是幾種常用的方法。
1、約定固定長度。
2、以函數(shù)參數(shù)返回數(shù)組長度。
3、將長度保存在全局變量中。
4、約定數(shù)組結(jié)束標(biāo)記。
5、在數(shù)組中存儲數(shù)組長度,如存在第一個元素中。
有些時候需要子函數(shù)將一個數(shù)組返回出來,通常是兩種方法,一種是靠指針,另一種是結(jié)構(gòu)體。
例如指針:
#include stdio.h
char *test(char *tmp)
{
return tmp;
}
void main(void)
{
printf("%s",test("第一個測試?yán)覾n"));
}
當(dāng)前文章:c語言數(shù)組子函數(shù)返回值,c語言定義函數(shù)返回數(shù)組
分享URL:http://muchs.cn/article46/phejeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計、建站公司、App設(shè)計、定制網(wǎng)站
聲明:本網(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)