关于c++声明的一些知识点

《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)
  • 局部变量和堆内存上的变量:
  1. 位于自定义类型的默认构造函数中时,执行默认初始化
  2. 否则不进行初始化,其值不确定

6、auto推断时会进行隐式地解引用操作

auto x = v;//x的类型为int而不是int&
auto & y = v;//y的类型是int&

猜你喜欢

转载自blog.csdn.net/kenfan1647/article/details/113807652