int a[3]={1,2,3,4,5};
int a[3]={a,b,c,d,e};
int b[] [3]={1,2,3,4,5,6};
int b[3] []-{1,2,3,4,5,6};
一维数组如果对数组全部元素赋初值,定义时数组长度可以省略;如果被定义数组的长度,与初值个数不同,则数组长度不能省略。
二维数组如果对全部元素都赋初值,则“行长度”可以省略。需要注意的是只能省略“行长度”,但第二维的长度即“列长度”不能省略。
选项A,初始化的元素超过了数组的长度;选项B初始化的元素是非法数据且超过了数组的长度;对二维数组的定义,无论什么情况都不能省略第二维,所以选项D错误;选项C正确,省略的第一维长度是2。