一、一維數組作為輸入參數:
大家都知道,如果一維數組作為參數的話,可以按如下方法來定義函數:
int func(int *array);
或者
int func(int array[M]); 其中M是數組的大小。
?
二、二維數組作為輸入參數:
而如果輸入參數是二維數組的話,可以按如下方法定義:
1. 直接以二維數組作為參數:
int func(int array[M][N]);
或者 int func(int array[][N]);
也就是說,二維數組作為參數,可以省略第一維的大小,但不可以省略第二維的大小,因為編譯器在尋址時是按p + i * N + j來對p[i][j]進行尋址的,所以第二維參數必須給出。
2. 以二維指針作為參數:
int func(int **array);
我們可以定義二維指針,然后尋址時手工進行即可:*((int *)array + i * N + j),前面的(int *)是強制轉換成指針類型。