变量存储类型
静态存储方式:在程序运行期间分配固定的存储空间的方式,静态存储区中存放了整个程序执行过程中都存在变量,如全局变量
动态存储方式:在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建
立和释放的。通常包括:自动变量;函数调用时的现场保护和返回地质等。
C语言中存储类别分为四类:
1、自动(auto),用关键字auto定义的变量为自动变量,auto可省略,如不写则隐含定为“自动存储类别”,属于动态存储方式
例:auto int b,c;
2、静态(static),用static修饰的为静态变量,如定义在函数内部,称为静态局部变量,如定义在函数内部,称为静态外部变量
注:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在整个程序运行期间不释放;静态局部变量在编译时赋
初值,即只赋值一次;如果定义局部变量时不赋初值,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或 空
字符(对字符变量)
3、寄存器(register),为提高效率,将局部变量的值放在CPU中的寄存器中,这种变量叫“寄存器变量”
例:register int i;
注:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数量有限,不能定义任意多个寄存器的数量;
局部静态变量不能定义为寄存器变量
4、外部(extern),外部变量的意义是某函数可以调用在该函数之后定义的变量