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

一个默认值为的普通数组的初始化

一个默认值为的普通数组的初始化

C++
慕工程0101907 2019-07-05 10:27:15
一个默认值为的普通数组的初始化C+Notes:数组初始化有一个很好的数组初始化列表。我有一个int array[100] = {-1};预期它是满的-1,但它不是,只有第一个值是,其余的是0和随机值混合。密码int array[100] = {0};工作正常,并将每个元素设置为0。我在这里错过了什么.。如果值不是零,就不能初始化它吗?2:默认初始化(如上面所示)是否比整个数组的循环速度更快,并分配一个值,还是做同样的事情?
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

使用您使用的语法,

int array[100] = {-1};

“将第一个元素设置为-1剩下的0“因为所有省略的元素都设置为0.

在C+中,将它们全部设置为-1,您可以使用类似的std::fill_n(来自<algorithm>):

std::fill_n(array, 100, -1);

在便携式C中,您必须自己转一圈。有编译器扩展,或者您可以依赖于实现定义的行为作为快捷方式,如果这是可以接受的。


查看完整回答
反对 回复 2019-07-05
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

GCC编译器有一个扩展,它允许语法:

int array[100] = { [0 ... 99] = -1 };

这将所有元素设置为-1。

这被称为“指定的初始化器”(请参阅这里以获取更多信息。

注意,这不是为GCC c+编译器实现的。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 936 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号