2.2变量
2.2.1 变量定义
变量初始化
变量初始化以后立即可被使用
// a在初始化后就可以被使用了 int a = 3 , b = a + 1;
有多种初始化方式
老标准常见的初始化:int a = 0; int a(0);
cpp11全面使用列表初始化
int a = {0}; int a{0};
列表初始化的好处是如果存在进度损失的风险,编译器将会报错
// 需要搜索转换,将报错 double d = 3.14; float a = {d};
默认初始化
构造函数可以规定对象初始值
内置类型在函数体内不初始化
内置类型在函数体外会被默认初始化为0
应避免使用未初始化的变量
2.2.1 变量声明和定义的关系
由于C++支持分离式编译,所以需要区分声明和定义
变量的声明
加extern关键字
extern int i;
声明是告诉编译器有这个变量存在 (使得名字被程序所知)
变量的定义
int i;
定义是创建变量的实体
定义除了告诉编译器有这变量存在之外,还为变量分别的空间,进行了初始化
一个变量可以被声明多次,但是只能也必须被定义一次
包含了显式初始化的声明即为定义
// 这个是定义 extern int i = 1;
含了显式初始化的声明即为定义
// 这个是定义 extern int i = 1;