變量在作用域里面被聲明的是什么類型,就當作什么類型來用。
(1)參數是二維數組,但是要指定第二維的維數。
int array[10][10];
函數聲明:void fuc(int a[][10]);
函數調用:fuc(array);
——在函數fuc中,a是二維數組。使用a[i][j]形式來訪問數組中元素。
(2)參數使用一維指針數組。
int *array[10];
for(i = 0; i < 10; i++)
array[i] = new int[10];
函數聲明:void fuc(int *a[10]);
函數調用:fuc(array);
——在函數fuc中,a是一維指針數組。使用*(a[i] + j)形式來訪問數組中元素。
(3)參數使用指針的指針。
int **array;
array = new int *[10];
for(i = 0; i <10; i++)
array[i] = new int[10];
函數聲明:void fuc(int **a);
函數調用:fuc(array);
——在函數fuc中, a是指針的指針。使用*(int *)(a + i*d2 + j)形式來訪問數組中元素。其中:
a[0]<=>array[0][0],
a[1]<=>array[0][1],
…
a[10]<=>array[1][0]
注:d2為二維數組的二維維數,即列數。并且a + i*d2 + j為地址,所以要把這個類型為指針的指針的地址強制轉換為指針來使用。