为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下。这两个的区别?

请问一下。这两个的区别?

C
慕粉18029504947 2018-05-01 04:31:20
int score[6][3]={{0},{0},{0}};int score[6][3]={{0},{0},{0},{0},{0},{0}};
查看完整描述

3 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

你这两个代码没有区别。都是把所有元素初始化为 0。


对于数值类型数组,数组大小比初始化列表中提供的初值个数多的,多出的没有指定初值的元素会被初始化为 0。


第一个 score 数组:初始化列表只提供了 3 个元素的初值,且这 3 个元素也只提供了 1 个值,但其他元素会被初始化为 0,所以最后 score 中全部都是 0。

第二个 score 数组:这次初始化列表提供了 6 个元素的初值,其他和上面没有区别,最终 score 中仍然全都是 0。

查看完整回答
反对 回复 2018-05-01
?
慕粉1529473653

TA贡献8条经验 获得超2个赞

怎么说,应该是有区别的,但是最终还是没有区别,区别的地方就是有些未被自己初始化,但是没区别的就是结果一样,因为编译运行后结果都一样。有时候过程可以不必斤斤计较,结果是一样的,如果只是想要初始化为0,那么就这样吧 int score[6][3] = {0};

查看完整回答
反对 回复 2018-05-01
?
Sival_Eulyn

TA贡献8条经验 获得超2个赞

被允许这样书写的是初始化过程的赋值;

score[m][n]是二维数组,外层括号定义一个行,内层定义m个列,每个列有n个元素

数组初始化顺序进行,没涉及的元素相当于是缺省值(未经初始化时的值);

{{0},{0},{0}} <=> {{0, ?, ?},{0, ?, ?},{0, ?, ?},{?, ?, ?},{?, ?, ?},{?, ?, ?}}

{{0},{0},{0},{0},{0},{0}} <==> {{0, ?, ?},{0, ?, ?},{0, ?, ?},{0, ?, ?},{0, ?, ?},{0, ?, ?}}


查看完整回答
反对 回复 2018-05-01
  • 3 回答
  • 0 关注
  • 1255 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信