函数与二维数组
如果要将一个二维数组传入一个函数,其函数的形参声明形式应该是:
int sum(int (*arr)[4], int size);
\\为了提高可读性,也可以写成这样的形式
int sum(int arr [][4], int size);
这里int (*arr)[4]
表示arr
是一个数组,数组的元素是指向另一个由四个元素组成的数组。也就规定了二维数组的列数为4,这是C++的语言性质。
这里int (*arr)[4]
中的括号不能去除,如果去除,就表示声明的是一个由四个指向int
类型的指针组成的数组。与之前不同的是,该指针不表示数组。
按照上面的方式对函数进行声明了之后就能正常进行调用了:
int data[3][4] = {
{1,2,3,4},
{9,8,7,6},
{2,4,6,8}
};
int total = sum(data, 3);