c語言自定函數(shù)返回數(shù)組 c語言用函數(shù)返回數(shù)組

C程序自定義函數(shù)數(shù)組返回值

由于最后返回值的類型是數(shù)組類型,所以在剛開始的時候定義函數(shù)int px(int b[5])應(yīng)該為int * px(int b[5])就可以。即添加一個*就可以。

成都創(chuàng)新互聯(lián)公司長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為榆次企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站制作,榆次網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

在C語言中如何使函數(shù)返回數(shù)組

C/C++不能直接返回一個數(shù)組。這是由于在C/C++中,數(shù)組不是一種類型,因此不能被直接返回。 在C/C++中,一般有兩種方法來返回一個數(shù)組。 第一種方法: 返回一個指向數(shù)組的指針,例如char (*retArray)[10]聲明了一個函數(shù)retArray,該函數(shù)可以返回指向具有10個char元素的數(shù)組例子如下:#include#includeint (*retArray())[10]{int (*a)[10];int i=0;/*動態(tài)開辟空間*/ a=calloc(10,sizeof(int));/*賦值*/for(i=0;i10;i++){(*a)[i]=i;}return a;}int main(){int (*b)[10]; /*函數(shù)返回指向數(shù)組的指針*/ b=retArray(); /*打印第一個元素*/ printf("%d/n",(*b)[0]); /*釋放空間*/free(b);return 0;}第二種方法: 如果你不喜歡用指針的形式返回數(shù)組,那么可以采用返回一個結(jié)構(gòu)的形式。這種形式相對較安全,可以避免忘記釋放指針而造成內(nèi)存泄露,也可以避免訪問懸掛指針造成的錯誤。但缺點是由于結(jié)構(gòu)是先拷貝再返回,因此如果結(jié)構(gòu)較大時,會影響效率和占用較大內(nèi)存。 例子如下:#includestruct tag{int a[10];}x,y;struct tag retArray(){int i=0;for(i=0;i10;i++) x.a[i]=i;return x;}int main(){struct tag y=retArray(); printf("%d/n",y.a[3]);return 0;}注意:(1)在返回指針時要切記要避免內(nèi)存泄露和訪問懸掛指針。 (2)很多人認(rèn)為指針和數(shù)組等價的,這是錯誤的。int (*a)[10]和int b[10]兩者是不能直接用a=b來賦值的。在數(shù)組和指針作為函數(shù)參數(shù)傳遞時,二者可以認(rèn)為等價,這是因為數(shù)組會被轉(zhuǎn)化為指針來傳遞。 (3)返回多維數(shù)組方法類似。

c語言自己定義的函數(shù)如何返回數(shù)組

#includestdio.h

main()

{

float change(float array[3][3]);

float a[3][3];

int i,j;

for (i=0;i3;i++)

for (j=0;j3;j++)

scanf("%d",a[i][j]);

change (a);

for (i=0;i3;i++)

for (j=0;j3;j++)

printf("%4d\n",a[i][j]);

}

float change(float array[3][3]) // 這里可以寫出 array[][3]

{

float c[3][3];

int m,n;

for(m=0;m3;m++)

for(n=0;n3;n++)

c[n][m]=array[m][n];

for(m=0;m3;m++)

for(n=0;n3;n++)

arry[m][n]=c[m][n]; //不想改變你的程序,所以在這里修改。這樣 arry在主函數(shù)中是可以訪問的。。。不用返回了。

}

以上回答你滿意么?

c語言函數(shù)返回數(shù)組?

在C語言中,無法直接返回一個數(shù)組,但是可以通過返回對應(yīng)類型指針的方式,返回數(shù)組。

在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。

比如,定義一個函數(shù),申請一定長度的整型動態(tài)數(shù)組,其長度用參數(shù)傳入,并將結(jié)果返回。如出錯,返回空指針NULL。 代碼可以寫成如下形式:

int?*int_array_create(int?n)//參數(shù)n為數(shù)組元素個數(shù)

{

int?*r;?

if(n=0)?return?NULL;//參數(shù)錯誤

r?=?(int?*)malloc(sizeof(int)*n);//申請內(nèi)存空間,大小為n個int長度。

return?r;//返回得到的整型數(shù)組的指針。?

}

文章題目:c語言自定函數(shù)返回數(shù)組 c語言用函數(shù)返回數(shù)組
網(wǎng)站路徑:http://www.muchs.cn/article8/hjesip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)、小程序開發(fā)、做網(wǎng)站服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)