以下能对二维数组a进行正确初始化的选项是( )。 A. int a[2][ ]={ {1,0,1

以下能对二维数组a进行正确初始化的选项是()。A.inta[2][]={{1,0,1},{5,2,3};B.inta[][3]={{1,2,3},{4,5,6};C.in... 以下能对二维数组a进行正确初始化的选项是( )。
A. int a[2][ ]={ {1,0,1},{5,2,3};
B. int a[ ][3]={ {1,2,3},{4,5,6};
C. int a[2][4]={ {1,2,3},{4,5},{6} };
D. int a[ ][3]={ {1,0,1},{ },{1,1} };
正确答案:B
请问D错在哪里?
展开
 我来答
种烧饼的怪叔叔
推荐于2017-11-26 · TA获得超过2214个赞
知道小有建树答主
回答量:824
采纳率:65%
帮助的人:449万
展开全部
首先B也有问题,少了“}”,暂且算打印错误吧。
对于D而言,数组的初始化方式有两种,一种是缺省的初始化,例如int a[5];,那么数组里的值将未定义,一种是int a[5]={1};虽然只定义了a[0]的值是1,但是计算机会默认把后面没有定义的全部置0。但是int a[5]={}就非法了,因为没有这种初始化方式,同理,你的二维数组在逻辑上就是一个数组里面的成员全部是数组。所以要按照数组的初始化方式,int a[ ][3]={ {1,0,1},{0 },{1,1} };此处不可缺省{0},因为二维数组你列数是根据{}的数量决定的,缺省了{0}就变成 int a[2 ][3]了
更多追问追答
追问
谢谢谢谢,我大概明白了,但是书上有一个和这个类似的,是打印错误嘛@_@

muicc
2014-09-14 · TA获得超过335个赞
知道小有建树答主
回答量:827
采纳率:0%
帮助的人:216万
展开全部
每一行必须三项,可以是任意行。D后面项数不对
更多追问追答
追问
那C呢?每一行必须四项,后面显然项数不对啊。还有,没有初始化的不是系统自动定义初值为0吗?
追答
C不对啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式