0 存储类型是指变量占用内存空间的方式,也称为存储方式。从内存分配的时间上,可分为“静态存储”和“动态存储”类。
0.1 静态存储:在程序前,系统(编译器)自动分配内,程序结束后,系统(编译器)自动释放。
0.2 动态存储:在程序执行时;根据需要手动分配内存,使用完成后再手动释放。
1 C语言中,变量的存储类型具体有以下4种:auto 自动(动态存储)、register 寄存器 (动态存储)、static 静态(静态存储)、extern 外部(外部存储)
1.1 auto: 函数中所有非static局部变量
C支持auto int i;-C++不支持
C++支持auto i = 0;自动识别i为int型
1.2 register: 寄存器存储变量,提高访问效率
使用registrer的目的是让程序员把某个指定的局部变量放在计算机的某个硬件寄存器中而不是内存中。好处是提高运行效率(较内存而言,CPU访问内存更快)
C++优化:自动将计算量大的存为寄存器变量-无需定义;不可全局使用(CPU访问寄存器的速度比访问内存的速度快)
1.3 static:静态变量,只能初始化一次
将内部和外部的变量变成static的意义是不一样的
对于局部变量而言,static相较auto,程序执行时始终保持它的值(初始化操作只能在第一次执行的时候,如果不初始化默认为0)
1.4 extern: 外部存储变量,extern声明了程序中将要使用,但尚未定义的外部变量。
外部变量的作用域从定义处到文件结束