int a[4][4]] = {1,2,3,4,5,}; int *p = a; int *q = &a[5]; printf("%d", q-p); 为什么输出结果是5啊求解!

------解决方案--------------------编译器会自动计算一个朂小的且又能包容所有那些初始值的维度大小。

而如果对于计算出来的维度大小那些初始值不能把整个数组完全填满的话,那么其餘的那些元素将被初始化为0。

利用后边这一点很容易定义一个全零的大数组比如:

上面这两个数组的每一个元素都是0。

所以a的第一个维喥就是3系统会根据第二个维度大小自动设置第一个维度。注意这里第二维度是不能像第一个维度那样省略的。

}

我要回帖

更多关于 int a[4][4] 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信