C/C++中二维数组作为函数参数------方法及要点讲解

时间:2025-05-09 08:05:34

**

1,形参给出第二维的长度。

**
C/C++中二维数组作为函数参数 的时候,可以不写行号,但是一定要写明列号(一定注意,一定注意,一定注意!)。

int array[3][3];
函数声明:void fuc(int a[][3]);
函数调用:fuc(array);
——在函数fuc中,a是二维数组。使用a[i][j]形式来访问数组中元素。

原因:必须要写明下标,编译器才能根据下标计算出元素的地址

**

2,形参声明为指向数组的指针,一定要写明列号(一定注意,一定注意,一定注意!)。

**

int *array[3];
for(i = 0; i < 3; i++)
    array[i] = new int[3];
函数声明:void fuc(int *a[3]);
函数调用:fuc(array);
——在函数fuc中,a是一维指针数组。使用*(a[i] + j)形式来访问数组中元素。

3,参数使用指针的指针(不用指定列号了)

int **array;
array = new int *[3];
for(i = 0; i <3; i++)
    array[i] = new int[3];
函数声明:void fuc(int **a);
函数调用:fuc(array);
——在函数fuc中, a是指针的指针。使用array[i * j + j]形式来访问数组中元素。

**注意,**在函数中使用传参过来的二维数组(指针)进行数组取值的时候不能使用(array[i][j])这种形式来取值。应该将二维数组看成一个一维数组,使用array[i * j + j]这种形式来进行取值。