1.使用#ifndef…#endif不能防止编译器将文件包含两次,而只是让它忽略第一次包含之外的所有内容。
2.C++存储数据的方法:自动存储持续性(使用栈管理);静态存储持续性;线程存储持续性(C++11);动态存储持续性。
3.三种静态持续变量:在代码块外声明,创建链接性为外部的静态持续变量;在代码块外声明并使用关键字static,创建链接性为内部的静态持续变量;在代码块内声明并使用关键字static,创建没有链接性的静态持续变量。
4.两种变量声明:一是定义声明简称定义,给变量分配内存;另一种是引用声明简称声明,不给变量分配内存,而引用已有变量,使用关键字extern。
注意:若使用extern且初始化,此时为定义。
5.存储持续性为静态、链接性为外部的变量为外部变量或全局变量。在每个使用外部变量的文件中,都必须声明它。默认情况下全局变量的链接性为外部,但const全局变量的链接性为内部,但可使用extern来覆盖默认的内部链接性。
6.作用域解析运算符(::)放在变量名前,表示使用变量的全局版本。
7.如果文件定义了一个静态外部变量(使用了关键字static),启明城与另一个文件中声明的常规外部变量相同,则该文件中,静态变量将隐藏常规外部变量。
8.cv-限定符:const;volatile(表明即使程序代码没有对内存单元进行修改,其值也可能发生变化)。
9.存储说明符:mutable(指出即使结构或类变量为const,其值也可修改);auto;register;static;extern;thread_local。
10.默认函数链接性为外部,可使用关键字static设置为内部。
11.使用new运算符初始化时如果要为内置的标量类型分配存储空间并初始化,可在类型名后加上初始值;要初始化常规结构或数组,需要使用大括号的列表初始化。
12.包含头文件new,使用定位new运算符,使得可以指定要使用的位置,需在new后的大括号提供所需地址的参数。
13.在默认情况下,在名称空间中声明的名称链接性为外部。
14.不能在未命名名称空间所属文件之外的其他文件中,使用该名称空间的名称。