C语言的变量的存储类别
1、动态存储方式与静态存储方式
从变量的作用域角度将C语言中的变量分为局部变量和全局变量两类。实际上,在C语言中,变量的定义分为两个方面,一是变量的数据类型,二是变量的存储类别。
静态存储方式:是指在程序运行期间分配固定的存储空间的方式。动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式。
全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。在程序执行过程中它们占据固定的存储单元,而不动态地进行分配和释放。
2、auto变量
函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量)都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明。
int f(int a) /*定义f函数,a为参数*/
{
auto int b,c=3; /*定义b、c自动变量*/……}
a是形参,b、c是自动变量,对c赋初值3。执行完f函数后,自动释放a、b、c所占的存储单元。关键字auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。