“二维数组”?
首先说明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
posted on 2019-10-15 16:44 freshair_cn 阅读(130) 评论(0) 编辑 收藏 举报