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