“二维数组”?

首先说明C中是不存在所谓的“多维数组”的。

int array[a][b];声明的是一个有a个元素的数组,每个数组元素是一个含b个元素的数组。

上述声明正确的说法是,数组的数组。

如果给函数传递一个“数组的数组”,应这样声明:

void func(int array[][b]);

或者干脆

void func(int array[a][b]);

实际上传递的是指针,指向数组的指针,即

void func(int (*array)[b]);

不应该写成 void func(int **array); 因为:The automatic decaying of an array into a pointer only goes "one level deep".

https://stackoverflow.com/questions/2565039/how-are-multi-dimensional-arrays-formatted-in-memory

原文地址:https://www.cnblogs.com/freshair_cnblog/p/11678693.html