C++: 二维数组作函数参数

来源:互联网 发布:sci e数据库 编辑:程序博客网 时间:2024/06/06 03:34
变量在作用域里面被声明的是什么类型,就当作什么类型来用。


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