C++数组初始化

1. 数组的初始化规则
C++有几条关于初始化数组的规则,他们限制了初始化的时刻,决定了数组的元素数目与初始化器中值的数目不相同时将发生的情况。

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

    int a[4] = { 1, 2, 3, 4};	// OK
    int b[4];		 			//OK
    b[4] =  { 1, 2, 3, 4};		// 不合法
    a = b;						//不合法
    
  2. 可以用下标分别给数组中的元素赋值;

  3. 初始化时,提供的值可以少于数组的元素数目,那么编译器会把其他元素设置为0;

    float c[5] = { 1.22, 3.54}
    
  4. 如果初始化数组时方括号内为空,C++编译器会计算元素的个数。

    int d[] = { 1, 2, 3, 4};		// 计算元素个数
    

2.C++11数组初始化方法
C++11将使用大括号的初始化(列表初始化)作为一种通用初始化方式,可用于所有类型,数组以前就可以使用列表初始化,但C++11中列初始化新增类一些功能。

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

    int a[10] =  { 1, 2, 3, 4}; 		// OK with C++11
    
  2. 可不在大括号内包含任何东西,即把所有元素都设置为 0 :

    float b[10] = {};    		// 全为 0
    
  3. 列表初始化禁止缩窄转换:

    long c[4] = { 2, 5, 3.0}     			// 不合法,因为将 3.0 浮点数转化为整型为缩窄转换,即使小数点后为 0;
    char d[4] = { 'h', 'f', 124334, '\0'} 	//不合法,因为124334超出了char的取值范围;
    char e[4] = { 'h', 'f', 12, '\0'}		//合法
    
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值