关于多维数组在前面的关于指针的文章中也多次提及了,这里有必要补充一下。
0.在c语言中实际上只有一维数组,二维数组被视为数组的数组,多维数组就是数组的数组的数组的......
1.数组内部按照右边标号增加的顺序依次存放
2.数组退化为指针的规则不能递归调用,数组的数组退化成数组的指针,而不是指针的指针
如果向函数传递二维数组
int array[NROWS][NCOLUMS];
f(array);
那么函数的声明必须匹配
void f(int [][NCOLUMS]);
void f(int (*ap)[COLUMS]);
第一个已经有数组的指针的意思,第二个就更加明显。
3.数组的扁平化
数组失去了形状
衣带渐宽终不悔,为伊消得人憔悴