几个基本概念
- 静态存储区: 程序运行期间系统分配的固定的存储空间。
- 动态存储区: 程序运行期间根据需要进行动态分配的内存空间。
- 静态存储区和动态存储区都在内存中。
- 作用域:变量可被使用的范围。
- 生存期:变量在程序执行过程中存留时间。
全局变量(外部变量)
- 全局变量全部存放在静态存储区;作用域从变量定义处开始到本程序文件末尾;生存期从程序开始执行到程序执行结束(即程序执行期间不被释放)。
- 静态外部变量只能在本文件中被引用。
- 不被static修饰的全局变量可以通过extern被外部文件引用。
局部变量
- 自动变量(auto变量)都存储在动态存储区中;生存期和作用域都在其所在函数内。(系统默认没有声明存储类别的局部变量为自动变量,即auto可省略)
- 静态局部变量(static局部变量)存储在静态存储区中;作用域在函数内;生存期从程序执行到定义该变量开始到程序执行结束。
- 寄存器变量(register变量)存放在CPU的寄存器中,存取效率高。(register可省略,系统自动识别使用频繁的变量,存放在寄存器中。)
- 形参可定义为自动变量或者寄存器变量。