C++17尝鲜:把整形变量 i 初始化成1的七种方法

#include <iostream>
using namespace std;
int main()
{
    int i1 = 1;
    int i2(1);
    int i3 = {1};
    int i4{1};
    auto i5 = 1; // int i5 = 1;
    auto i6(1); // int i6(1); 
    auto i7 = {1}; // initializer_list<int> i7 = {1};
    auto i8{1}; // int i8{1};
    cout << i1 << endl;
    cout << i2 << endl;
    cout << i3 << endl;
    cout << i4 << endl;
    cout << i5 << endl;
    cout << i6 << endl;
    for(int i77 : i7) cout << i77 << endl;
    cout << i8 << endl;
}

代码说明

  1. i1 i2 的初始化采用了C++传统的初始化形式。i1 所采用的是带等号的拷贝初始化,而i2所采用的是小括号的直接初始化。
  2. i3 i4 的初始化采用了C++11新引入的统一初始化形式,即使用大括号进行初始化。使用大括号同样可以进行拷贝初始化和直接初始化。
  3. i5 i6 i7 i8 的初始化采用了C++11新引入的类型自动推导,即使用auto关键字自动推导变量的类型。
  4. i7 i8 的初始化同时采用了统一初始化形式和类型自动推导,但结果有所不同。
    C++17标准规定同时使用大括号和auto时,如果采用直接初始化,则变量将被推导为单个类型。如果采用拷贝初始化,则变量将被推导为初始化列表类型。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值