问题
单项选择题
以下数组定义中错误的是( )。
A) int x[][3]=0; B) int x[2][3]=1, 2, 3, 4, 5, 6;
C) int x[][3]=1, 2, 3, 4, 5, 6; D) int x[2][3]=1, 2, 3, 4, 5, 6;
答案
参考答案:B
解析: 本题考核的知识点是二维数组的定义及初始化。在定义一个二维数组同时初始化时,其第一维的长度可以省略。二维数组的初始化列表可以只使用一重花括号,其中的每个值依次代表从第1行的第1个元素起,直到第1行满,接着代表第2行、第3行……的每一个元素,若第1维长度没有省略,则这些值总个数不得超过两个维度的乘积。故选项A)和D)是正确的。二维数组的初始化列表还可以使用二重花括号括起来,其中每一个内花括号代表一行的值,在内花括号中值的个数不得超过数组第二维的长度,若不足第2维长度,则该行多出部分值被初始化为0,若第一维省略,花括号的个数代表行数。B)选项第一维为2,故只有两行,但有三个花括号超出了行的要求,所以B)错误。