下列对二维数组a进行不正确初始化的是

下列对二维数组a进行不正确初始化的是
麻烦说细一点,为什么错,为什么对,赋值这样写的意思在哪?谢谢给我大神指点迷津

D是错误的。
因为声明二维数组时,不能省略后面的任何一个维数的数字。如:int a[2][3];。
但是,如果是声明的同时赋值,可以省略前一个数字,而后面一个不能省略。如可以写成int a[][3]={{1,2,3},{4,5,6}};,这时前一个维数系统自动生成为2,这跟写成a[2][3]={{1,2,3},{4,5,6}};作用是一样的。追问

那大哥,A选项int a[][3]={0};为什么对呢?他的含义是不是可以默认int函数分三段,但后面=0是不是自相矛盾啊?就理论来说我是这样想的,我知道是错的,但错在哪我不明白,还请大哥指点迷津

追答

这是一个特例:它有一个赋值0,后面的元素都为0。即,它相当于int a[][3]={0,0,0};

追问

谢谢大哥

温馨提示:答案为网友推荐,仅供参考
相似回答