void Func(int array[3][10]);
void Func(int array[][10]);
2.不確定大小的二維數組轉爲二維指針:
從實參傳遞來的是數組的起始地址,在內存中按數組排列規則存放(按行存放),而並不區分行和列,所以可以轉換成二維指針。
void Func(int **array, int m, int n);
調用時候要把數組名轉換位二維指針
Func((int**)a, 3, 3);
獲取具體數組元素
*((int*)array + n*i + j);
:其中 (int *)array把array轉換成一維數組的存儲方式
然後從一維數組裏讀取元素。
若*(array + n*i + j); 輸出:
00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000008
00000009
0000000A
0000000B
0000000C
0000000D
0000000E
0000000F
00000010
若*((int*)array + n*i + j); 輸出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
3.最方便的還是轉爲一維指針。
因爲在內存中是連續存放的,所以。。。。。
void Func(int *array, int m, int n);調用時候要把數組名轉換位二維指針
Func((int*)a, 3, 3);
獲取具體數組元素
*(array + n*i + j);