【C++学习笔记】列表初始化规则

C++规定了如下几条关于初始化数组的规则:

1、只有在定义数组时才能使用初始化,此后就不能再使用了,也不能将一个数组赋给另一个数组。

2、初始化数组时,提供的值可以少于数组的元素数目。

3、如果只对数组的一部分进行初始化,则编译器将其他元素设置为0。因此,将数组中的所有元素都初始化为0的方法——显式的将第一个元素初始化为0,接下来让编译器将其他元素初始化为0即可。

4、如果初始化数组时方括号([])为空,C++编译器将计算元素个数。

C++11数组初始化方法:

1、初始化数组时,可省略等号(=)

double earnings[4] {1.2e4, 1.6e4, 1.1e4,  1.7e4};

2、可不在大括号内包含任何东西,这将把所有元素设置为零

unsigned int counts[10] = {};
float balances[100] {};

3、列表初始化禁止缩窄转换

long plifs[] = {25, 92, 3.0};
char slifs[4] = {'h', 'i', 1122011, '\0'};
char tlifs[4] {'h', 'i', 112, '\0'};

第一句不能通过编译,将浮点数转为整型是缩窄操作,即使浮点数的小数点后面为零。

第二句也不能通过编译,因为1122011超过了char变量的取值范围(这里假设char变量的长度为8位)。

第三句可以通过编译,虽然12是一个int值,但它在char变量的取值范围内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值