c 中二維陣列作為引數傳遞到函式

時間 2021-08-11 17:49:46

1樓:問明

方法1、 第一維的長度可以不指定;但必須指定第二維的長度。

#include

void print_a(int a[5], int n, int m)

int i, j;

for(i = 0; i < n; i++)for(j = 0; j < m; j++)printf("%d ", a[i][j]);

printf("\n");

方法2、指向乙個有5個元素一維陣列的指標。

void print_b(int (*a)[5], int n, int m)

int i, j;

for(i = 0; i < n; i++)for(j = 0; j < m; j++)printf("%d ", a[i][j]);

printf("\n");

方法3、利用陣列是順序儲存的特性。

void print_c(int *a, int n, int m)int i, j;

for(i = 0; i < n; i++)for(j = 0; j < m; j++)printf("%d ", *(a + i*m + j));

printf("\n");

int main(void)

int a[5][5] = , , , , };

printf("\n方法1:\n");

print_a(a, 5, 5);

printf("\n方法2:\n");

print_b(a, 5, 5);

printf("\n方法3:\n");

print_c(&a[0][0], 5, 5);

getch();

return 0;

2樓:楊柳風

可以傳遞二維陣列作為引數,有兩種方法,

方法一change(int **a)直接傳遞乙個指標進去方法二change(int a[10])陣列的第二維維度一定要顯式指定

假如主函式有乙個二維陣列int a[10][18];

寫乙個函式要傳遞二維陣列,函式原型應該是這個樣子void f(int (*)a[18]);

或者 void f(int a[18]) 必須確定第二維長度是多少

c語言中如何將二維陣列作為函式的引數傳遞

鄞臨婁溶溶 在c語言中可以用二維陣列作為實參或者形參。1 函式中用二維陣列作為形參,函式宣告中可以指定所有維數的大小,也可以省略第1維的維數如 void f int array 3 10 正確 void f int array 10 正確上面的兩種二維陣列形參表示都是正確的。2 函式中用二維陣列作為...

c語言關於定義二維陣列的問題,C語言中二維陣列的定義問題

焮欣 首先你要理解二維陣列的真正含義,它的第一維就是一組資料的起始位址,第二維就是某組資料中的某個值.其次,你要知道a 4 所表達的意思,是指二維陣列a的每一維都是由4個元素組成的一維陣列.而編譯器可以根據你賦給a的初值個數計算它的第一維長度 元素總個數 4,如果不能整除,則長度加1,此時還應該有幾...

求助 C語言二維陣列指標問題,c語言二維陣列用指標表示的問題

1.對於int p a p型別和a是不同的。p是指向乙個指標 指向int型別的量 的指標,a則是指向乙個一維陣列 含2個int元素 的指標。想要建立相同型別的指標應該用int p 2 才行 3.感覺p跟a就同級吧但型別不同 所以其實int p a 兩側的指標的型別是不相同的,只是a的值賦給p而已 假...