一、动态存储方式与静态存储方式
C语言中,每一个变量和函数都有两个属性:数据类型和数据的存储类别
从变量值存在的时间来观察,变量的存储有两种方式静态存储方式和动态存储方式
二、局部变量的存储类别
(1)自动变量(auto变量)
函数中的局部变量,如果不专门声明为static(静态)存储类别,都是动态地分配存储空间 的。在调用该函数时,系统会给这些变量分配存储空间,在函数调用结束时就自动释放这 些存储空间,因此这类局部变量称为自动变量
注意:关键字“auto”可以省略,不写auto则隐含指定为“自动存储类别”
(2)静态局部变量(static局部变量)
作用:局部变量的值在函数调用结束后不消失而继续保留原值
(3)寄存器变量(register)
为了提高执行效率,允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器 去除参加运算,不必再到内存中去存取,这种变量叫做寄存器变量
三、全局变量的存储类别
(1)在一个文件内扩展外部变量的作用域
如果由于某种考虑,在定义点之前的函数需要引用该外部变量,则应该在引用之前用关键 字extern对该变量作“外部变量声明”,表示把该外部变量的作用域扩展到此位置
(2)将外部变量的作用域扩展到其他文件
(3)将外部变量的作用域限制在本文件中
原创不易,未经本公众号允许禁止转载,否则追究法律责任