C++学习笔记(3):存储类、运算符
存储类定义C++程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。C++程序中可用的存储类包括:
auto、register、static、extern、mutable、thread_local(C++11)。
static存储类
static存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用static修饰局部变量可以在函数调用之间保持局部变量的值。
static修饰符也可用于全局变量。当static修饰全局变量时,会使变量的作用域限制在声明它的文件内。
在C++中,当static用在类数据成员上时,会导致仅有一个该成员的副本被类的所有对象共享。
static 是静态,只分配一次内存空间,再次执行的时候也不会再分配新的内存空间。
extern存储类
extern用来在另一个文件中声明一个全局变量或函数。
extern修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。
C++运算符中的优先级