C++中二位数组作为函数参数

变量在作用域里面被声明的是什么类型,就当作什么类型来用。

(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为地址,所以要把这个类型为指针的指针的地址强制转换为指针来使用。

posted @ 2011-03-01 20:43  记录点滴  阅读(3486)  评论(1编辑  收藏  举报