变量的 4 种存储类型
存储类型:
总共有四种存储类型的变量,分别为自动变量(auto)、静态变量(static)、外部变量(extern)以及寄存器变量(register)。
auto - 函数中所有的非静态局部变量。(c语言可以指定类型如auto int a,c++编译器不能指定类型编译器会进行推导)
register - 一般经常被使用的的变量(如某一变量需要计算几千次)可以设 置成寄存器变量,register 变量会被存储在寄存器中,计算速度远快于存在内存 中的非 register变量.(现在已经不需要定义了,编译器会进行优化,注意寄存器没有地址,因此不能对register定义的变量取地址,否则该变量会降级为auto类型)
static - 在变量前加上 static 关键字的变量。
extern - 把全局变量在其他源文件中声明成 extern 变量,可以扩展该全局变 量的作用域至声明的那个文件,其本质作用就是对全局变量作用域的扩展。
变量的作用域和生存周期
局部静态变量在定义的函数里面可以直接使用,且只执行一次在创建局部变量时的赋值,如果没有赋值,就默认为0
存储期为静态的可以都可以通过指针,间接访问
extern int age = 0; 意思是定义了变量age,声明为extern