c語言函數(shù)輸出一個(gè)數(shù)組 C語言數(shù)組的輸出

c語言中,定義一個(gè)函數(shù),函數(shù)輸出結(jié)果是一個(gè)數(shù)組,整個(gè)的形式是怎么樣的?

提供兩個(gè)辦法:

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供香坊網(wǎng)站建設(shè)、香坊做網(wǎng)站、香坊網(wǎng)站設(shè)計(jì)、香坊網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、香坊企業(yè)網(wǎng)站模板建站服務(wù),十余年香坊做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

1.在主調(diào)函數(shù)中建立數(shù)組,將數(shù)組指針傳給自定義的函數(shù),處理后主調(diào)函數(shù)中的數(shù)組值也就變化了。

void fun(int a[],int n){

........

}//其中a[]就是要輸入的數(shù)組,n是這個(gè)數(shù)組的長(zhǎng)度。

void main(void){

int arry[10]={1,2,3,4,5,6,7,8,9,0};

fun(arry,10);

......

}

2.可以在主調(diào)函數(shù)中建立數(shù)組并把首地址和長(zhǎng)度傳給函數(shù),在函數(shù)中創(chuàng)建一個(gè)動(dòng)態(tài)數(shù)組,處理完后把動(dòng)態(tài)數(shù)組的首地址返回主調(diào)函數(shù),最后在主調(diào)函數(shù)中釋放動(dòng)態(tài)申請(qǐng)的內(nèi)存。

int *fun(int a[],int n){

int *p=(int *)malloc(n*sizeof(int));//申請(qǐng)內(nèi)存.

if(!p){//判斷是否申請(qǐng)成功.

printf("failure...");

exit(0);

}

memcpy(p,a,n*sizeof(int));//把主調(diào)函數(shù)的數(shù)組拷貝過來.

......

return p;

}

void main(void){

int arry[10]={1,2,3,4,5,6,7,8,9,0},*ptmp;

ptmp=fun(arry,10);

......

free(ptmp);//釋放申請(qǐng)的空間.

}

數(shù)組的內(nèi)容是不能一一傳給函數(shù)的……

c語言中能不能用printf函數(shù)直接輸出數(shù)組?如printf("%d",a[3][3]);

限制在C語言中,利用printf直接輸出數(shù)組是不可以的。

但是你的做法是可以的。只是問題出在你數(shù)組使用越界了。

解釋一下:

printf不能直接用來輸出數(shù)組。

例如:

#includestdio.h

int main(){

int a[3]={1,2,3};

int i;

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

printf("%d",a);

}是錯(cuò)誤的

所以要是輸出數(shù)組的話,必須要借助其他的語句輸出,要一個(gè)一個(gè)地輸出,例如for語句的循環(huán)輸出。

例如:

#includestdio.h

int main(){

int a[3]={1,2,3};

int i;

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

printf("%d",a[i]);

}但是你這樣的做法是可以:

因?yàn)槟銓懙腶[3][3]實(shí)際上已經(jīng)指定了這個(gè)數(shù)字在這個(gè)二維數(shù)組中的橫坐標(biāo)和縱坐標(biāo),相當(dāng)于一個(gè)int型的數(shù)據(jù)。但是不過你數(shù)組越界了。

額外引申一下:直接用scanf輸入一個(gè)數(shù)組的量可以么?

#includestdio.h

int

main(){

char

a[3];

scanf("%c",a);

int

i;

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

printf("%c",a[i]);

}

這樣輸入3個(gè)字符,只能把輸入的第一個(gè)字符放進(jìn)a數(shù)組里面。因?yàn)閍就是這個(gè)數(shù)組的地址,同時(shí)也表示這個(gè)數(shù)組的第一個(gè)。a可以給數(shù)組的第一個(gè)放進(jìn)一個(gè)字符,但是后面的就無能為力的。

代碼均在Devc++測(cè)試。

C語言數(shù)組的輸出函數(shù)

#include

"stdio.h"

void

input(int

a[10])

//給一維數(shù)組輸入數(shù)據(jù)

{

int

i;

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

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

}

void

output(int

a[10])

//輸出一維數(shù)組輸入數(shù)據(jù)

{

int

i;

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

printf("%d

",a[i]);

}

int

main()

{

int

b[10];

input(b);

//調(diào)用input函數(shù)給數(shù)組b賦值

output(b);//調(diào)用output函數(shù)輸出數(shù)組b中的值

}

網(wǎng)站標(biāo)題:c語言函數(shù)輸出一個(gè)數(shù)組 C語言數(shù)組的輸出
網(wǎng)站地址:http://muchs.cn/article44/hjsche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、建站公司、定制網(wǎng)站網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷全網(wǎng)營(yíng)銷推廣

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)