为什么二维数组的行数可以省略,但列数不可以
答案: 因为省略了列数无法寻址。
我们这里举个例子
省略行数的情况
int a[][2] = {
1,2,3,4}
那实际它的存储方式是
实际情况是在计算机中所有的数据都在一行存储,因此实际的存储方式是
1,2,3,4,…
在这种情况下想要找到a[m][n],寻址方式是a+8*m+n,因为一行是两个int,所以是8
省略列数的情况
int a[2][] = {
1,2,3,4}
那它的存储方式是
在计算机中所有的数据都在一行存储,因此它的实际存储方式为 1,2,…,3,4,…
在这种情况下想要找到a[m][n],会发现按照之前的方式无法寻址,因为无法确定每一行的长度,地址是a+x*m+n,其中x是每一行的长度,这个值不固定无法寻址。
