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};
追问谢谢大哥