初始化和赋值的区别

在C++中,变量初始化和赋值操作符是两个完全不同的概念。

初始化不是赋值,初始化的含义是创建变量分配存储空间时为其赋一个初始值,而赋值的含义是把内存空间的当前值擦除,用一个新值代替。

 

C++中列表初始化

int number1 = 1

int number2 (1)

int number3 {1}

int number4 = {1}

作为C++11新标准,花括号来初始化变量得到全面应用,这种初始化叫做列表初始化(list initialization)

列表初始化特点:使用列表初始化且初始值存在信息丢失风险,则编译器报错

int num{1}       //正确

int num2{1.1}  //错误

int num3 = 1.1  //正确

 

默认初始化

定义在任何函数体外的内置类型变量被初始化为0,而定义在函数体内部的内置类型变量将不会被初始化,这个值是未定义的,这是个不确定的值,使用未初始化变量的值是一种错误的编程方式,并且很难吊事,建议定义每一个内置类型变量时都对变量进行初始化。

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

posted on 2015-10-20 00:40  南大的枫之值  阅读(1353)  评论(0编辑  收藏  举报