c++的变量初始化

  1. 首先,应该遵循一个规则,以防止为初始化变量引发的运行时故障:初始化每一个内置类型的变量。

常规的变量初始化大家都很熟悉,现在说一下c++11标准新增的列表初始化

以下有几种初始化方式:

int a = 0;
int a = {0};
int a{0};
int a(0);

都可以把a初始化为0.

  • 但是列表初始化有一个重要的特点就是:当用于内置类型的变量时,如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器会报错。
double a = 3.14;
int b{a}, c = {a};    //错误:转换不会执行,因为存在丢失信息的风险
int d(a), e = a;      //正确:转换执行

变量声明和定义的区别:

  • 变量声明规定了变量的名字和类型,但是不申请存储空间,也没有初始值
  • 变量定义,除了规定了变量的名字和类型,还申请存储空间,同时可以有初始值

如果想声明一个变量而不定义,则要在变量名之前添加关键字extern,并且不要显示的初始化变量。

extern int i;     //声明i而非定义i
int i;            //声明并定义i

extern int i = 2; //错误

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值