當前位置:首頁 » 編程語言 » c語言傳二維數組

c語言傳二維數組

發布時間: 2022-06-19 12:57:38

c語言 二維數組傳遞參數

二維數組傳遞給函數的時候,有兩種方式,一種是a[][6],一種是(*a)[6],這里的6是不能省略的,不然編譯器不知道如何通過加多少來偏移這個指向數組的指針。

② c語言中怎麼用二維數組作為函數參數

C語言中
指針做函數參數傳遞二維數組有兩種基本方法:1、傳遞「數組指針」<pre
t="code"
l="cpp">#include
<stdio.h>
void
output(
int
(*pa)[3],
int
n
)//這個函數只能輸出n行3列的二維數組
{
int
i,j;
for(
i=0;i<n;i++
){
for(
j=0;j<3;j++
)
printf("%d
",
pa[i][j]
);
printf("\n");
}
}
void
main()
{
int
a[2][3]={
{1,2,3},
{4,5,6}
};
output(a,2);
}2、傳遞「指針數組」
先將二維數組的行指針存儲到一個指針數組中,再將指針數組傳遞到子函數中去。<pre
t="code"
l="cpp">#include
<stdio.h>
void
output(
int
*pa[],
int
row,int
col
)
//這個函數更通用,但調用前,要做好准備工作。
{
int
i,j;
for(
i=0;i<row;i++
){
for(
j=0;j<col;j++
)
printf("%d
",
pa[i][j]
);
printf("\n");
}
}
void
main()
{
int
a[2][3]={
{1,2,3},
{4,5,6}
};
int
i;
int
*pa[2];
for(
i=0;i<2;i++
)
pa[i]=a[i];
output(pa,
2,
3);
}

③ C語言中如何將二維數組作為函數的參數傳遞

函數原型 type fun (type (name*)[size])

type是你要定義的類型,fun是函數名,name是在函數中二維數組的名字,
size是二維數組第2維的長度。
這樣調用這個函數只需要把二維數組函數名傳遞就可以了。

④ C語言中如何將二維數組作為函數的參數傳遞

在C語言中可以用二維數組作為實參或者形參。


1、函數中用二維數組作為形參,函數聲明中可以指定所有維數的大小,也可以省略第1維的維數如:

voidf(intarray[3][10]);//正確
voidf(intarray[][10]);//正確

上面的兩種二維數組形參表示都是正確的。


2、函數中用二維數組作為形參,不能把第2維或者更高維的大小省略,如下面的定義是不合法的:

voidf(intarray[][]);//錯誤

因為從實參傳遞來的是數組的起始地址,在內存中按數組排列規則存放(按行存放),而並不區分行和列,如果在形參中不說明列數,則系統無法決定應為多少行多少列,不能只指定一維而不指定第二維,下面寫法是錯誤的:

voidf(intarray[3][]);//錯誤

3、二維數組作為實參傳遞時,必須保證實參第2維的維數與形參第2維的維數相同,因為必須要保證形參和實參的數據類型一致。比如定義如下函數:

voidf(intarray[][10]);

可以將如下數組傳遞給函數f。

inta[2][10]={1,2,3,4};
intb[4][10]={1};

⑤ C語言:二維數組 形參傳值寫法

編譯器實際處理多維數組是把一維數組分段處理的,也就是說實際上並不存在多維數組,多維數組僅僅是個邏輯概念。
例如下面這個:
int fun(int a[2][3],int n);

或者
int fun(int a[][3],int n);
要指出列數是多少,行數寫不寫都一樣,行數要通過n進行傳遞。

假設
int b[2][3]={};
則調用的時候可以寫:
fun(b,2);

⑥ C語言 傳遞二維數組 急

既然是全局變數數組,那麼就直接用就行了,不需要作為參數和返回。
全局變數申明時放在所有函數的之前,然後再ini()函數直接改,在display()中直接用就行。

⑦ c語言二維數組傳值

多維數組傳遞,n要為固定大小,void p( arr[][5] );
int arr[2][5];

p(arr);

來自下面網址

網頁鏈接

⑧ c語言函數怎麼傳入一個二維數組

這樣傳:
函數聲明:Func(變數類型 *[二維數組的列長] arry);

char arry[][4] ;
Func(arry);

⑨ C語言中 指針做函數參數傳遞二維數組

C語言中
指針做函數參數傳遞二維數組有兩種基本方法:
1、傳遞「數組指針」
#include <stdio.h>
void output( int (*pa)[3], int n )//這個函數只能輸出n行3列的二維數組
{
int i,j;
for( i=0;i<n;i++ ){
for( j=0;j<3;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
output(a,2);
}
2、傳遞「指針數組」
先將二維數組的行指針存儲到一個指針數組中,再將指針數組傳遞到子函數中去。
#include <stdio.h>
void output( int *pa[], int row,int col ) //這個函數更通用,但調用前,要做好准備工作。
{
int i,j;
for( i=0;i<row;i++ ){
for( j=0;j<col;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
int i;
int *pa[2];
for( i=0;i<2;i++ )
pa[i]=a[i];
output(pa, 2, 3);
}

熱點內容
開源庫編譯管理員 發布:2025-02-06 09:39:14 瀏覽:914
臉書怎麼注冊安卓 發布:2025-02-06 09:36:47 瀏覽:381
車用安卓導航無線打不開什麼原因 發布:2025-02-06 09:27:50 瀏覽:790
安卓與蘋果如何互相傳送文件 發布:2025-02-06 09:27:40 瀏覽:26
華為伺服器盤符如何分配 發布:2025-02-06 09:26:41 瀏覽:560
傳奇h5源碼下載 發布:2025-02-06 09:26:06 瀏覽:78
編譯uclibc 發布:2025-02-06 09:09:04 瀏覽:152
用gcc編譯16位匯編 發布:2025-02-06 09:06:07 瀏覽:823
什麼低端安卓手機不卡 發布:2025-02-06 09:03:32 瀏覽:14
我的世界伺服器卡領地 發布:2025-02-06 08:50:45 瀏覽:256