任何一个变量和函数都有两个属性,1、数据类型(我们已经熟知) 2、数据的存储类别
有2种存储方式,有4种存储类别
auto自动变量
一般来说auto可以省略,1、函数的形参 2、在函数中定义的局部变量(包括在复合语句中定义的局部变量)都是自动变量auto。上述2种自动变量都是存储在内存的动态存储区中的。
static静态局部变量
1、第一次赋值有效,以后在调用时,直接使用上一次调用的值而不需重新赋值。
2、存储在静态存储区内。
3、如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。
static静态全局变量
1、static int a 变量只可在本文件中使用
2、而int a,只是全局变量,可以在整个工程中使用,其他文件引用时需要加extern关键字声明
register变量
1、为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中。
2、只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量。
3、局部静态变量不能定义为寄存器变量。
extern变量
1、在一个文件中扩展外部变量的作用域
2、在一个文件中引用另一个文件中已经定义的外部变量