变量的存储属性
在 语言中,变量是对程序中数据所占用内存空间的一种抽象,定义变量
时,用户定义变量的名,变量的类型,这是变量的操作属性。不仅可以通过变
量名访问该变量,系统还通过该标识符确定该变量在内存空间的位置。在计算
机中,保存变量当前值的存储单元有两类,一类是内存,另一类是 中的寄
存器,变量的存储属性就是讨论变量的存储位置的, 语言中定义了四种存储
属性,即自动变量、外部变量、静态变量和寄存器变量,它关系到变量在内存
中的存放位置,由此决定了变量的值保留的时间和变量的作用范围,这就是生
存期和作用域的概念。
变量的生存期和作用域
、变量的生存期
变量的生存期是指变量值保留的期限,可分为两种情况:
静态存储:变量存储在内存中的静态存储区,在编译时就分配了存储空间,
在整个程序运行期间,该变量占有固定的存储单元,变量的值都始终存在,程
序结束后,这部分空间才释放。这类变量的生存期为整个程序。
动态存储:变量存储在内存中的动态存储区,在程序运行过程中,只有当变
量所在函数被调用时,编译系统临时为该变量分配一段内存单元,该变量有值,
函数调用结束,变量值消失,这部分空间释放。我们说这类变量的生存期仅在
函数调用期间。
、变量的作用域
变量的作用域也称为可见性,指变量的有效范围,可分为局部与全局两种情况:
局部变量:在一个函数或复合语句内定义的变量,称为局部变量,局部变量
仅在定义它的函数或复合语句内有效。例如函数的形参是局部变量。
编译时,编译系统不为局部变量分配内存单元,而是在程序的运行中,当局部
变量所在的函数被调用时,编译系统根据需要临时分配内存,调用结束,空间
释放。
例 :分析程序的运行结果。
第一个复合语句中的局部变量
第二个复合语句中的局部变量
!
!