第1个回答 2020-04-10
绝对错了,不错你扇死我!
二维数组的初始化分为,一种为按行分段初始化,另一种为按行连续初始化。
int
a[2][3]={{5,6},{7,8},{9,10}};
这是第一种,
int
a[2][3]={5,6,7,8,9,10};
这是第二种。
a这个二维数组一共2行3列共6个存储空间,图形为:
5
6
7
8
9
10
正好占满。
而且C语言默认可以省略行数,但不能省略列数
你看看你的初始化
int
a[][4]={{0,0,3},{},{0,10}};
行数省略是没有任何问题的。
但是你是按行分段初始化
第一行0
0
3
第二行
第三行0
10
注意了,你只对其中3行进行了初始化,第4行丢了。
所以a是一个半初始化的数组,C编译系统绝对不承认!