《c++程序设计语言(第四版)》6.3章节
1、声明变量时并没有为它分配内存空间,定义变量时才分配内存空间。
2、同一个变量可以多次声明,但只能定义一次。
3、使用作用域解析运算符::可以访问被屏蔽的全局变量:
int x = 666;
int main(int argc, char *argv[])
{
int x = 3;
debug x << ::x;
}
4、当不使用auto定义变量时建议使用如下形式:
int i {666};
当使用auto时使用:
auto i = 666;
因为 auto i{666};推断出来的是initializer_list<int>类型
5、当定义了变量但未初始化时:
- 如果是静态变量、全局变量将会执行默认初始化。(int i; 等价于 int i{};i的值是0)
- 局部变量和堆内存上的变量:
- 位于自定义类型的默认构造函数中时,执行默认初始化
- 否则不进行初始化,其值不确定
6、auto推断时会进行隐式地解引用操作
auto x = v;//x的类型为int而不是int&
auto & y = v;//y的类型是int&