C语言变量的存储方式
从变量值存在的操作时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式。以下是两种存储方式的详细介绍:
完着一下内存中的供用户使用的存储空间的情况。这个存销空间可以分为了部分。
(1)程序区;
(2)静态存储区;
(3)动态存储区;
- 静态存储方式:是在变量定义时就分配内存单元并一直保持不变,直至整个程序结束。全局变量属于静态存储方式。
- 动态存储方式:是在程序运行期间,根据需要才动态地分配存储空间,当使用完毕即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放。如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。
在动态存储区中存放以下数据:
①函数形式参数。在调用函数时给形参分配存储空间。
②函数中定义的没有用关键字static声明的变量,即自动变量(详见后面的介绍)。
③函数调用时的现场保护和返回地址等。
总的来说,静态存储变量是一直存在的,而动态存储变量则时而存在时而消失。我们又把这种由于变量存储方式不同而产生的特性称变量的生存期。