动态存储
存储空间不是固定的,在程序运行期间按需动态分配
通常,局部变量、寄存器变量采用动态方式存储
静态存储
在程序运行期间由系统分配固定的存储空间
通常,局部static变量、全局变量都以静态方式存储
以静态方式存储的变量,其初始化在程序编译时进行
auto类型的变量
采用动态存储方式定义auto类型变量的
语法形式:[ auto ] 数据类型 变量名列表;
示例:auto int x;
static类型的变量采用静态存储方式。
○ 定义static类型变量的语法形式:static 数据类型 变量名列表;
○ 局部static变量
○ 全局static变量
局部static变量
定义在函数内部的static变量。
与普通变量的区别在于:
局部静态变量的初始化只进行一次。再次进入该函数时,将保存上次的结果。
局部静态变量如果在定义时没有赋初值,编译时自动赋初值0。
全局static变量
定义在函数外部的static变量。
与普通变量的区别在于:
全局static变量只在定义它的源文件中有效。
普通全局变量可以通过外部变量声明(extern),被其源文件使用。
register类型的变量采用动态存储方式。这类变量的
值保存在cpu内的寄存器中。
原文:https://www.cnblogs.com/yangyanggege/p/11140699.html