下图是我函数的定义,第三个参数就是我传入的二维数组
下图是我函数的调用
下图是我传入的二维数组的初始化过程
下图是我在调试过程中发现的传入二维数组变成一维数组的情况
下图是传入前的二维数组,那时还是好好的
这是因为什么原因呢?
下图是我函数的定义,第三个参数就是我传入的二维数组
下图是我函数的调用
下图是我传入的二维数组的初始化过程
下图是我在调试过程中发现的传入二维数组变成一维数组的情况
下图是传入前的二维数组,那时还是好好的
这是因为什么原因呢?
假设把二维数组 array
传进函数,可以这样写 int (*array)[10]
,注意这里的 *array
必须用括号括起来,否则 int *array[10]
参数相当于是声明了一个数组,该数组有10个元素,其中每个元素都是一个指向整型对象的指针。
但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的:
void Func(int array[ ][ ]);
补充一点:
二维数据和一维数组没有本质上的区别
比如 A[M][N]
是一个M行N列的数组
对于 A[i][j]
可以表达成 A[i*N+j]