按作用域来分
全局变量
静态外部变量(仅本文本可以使用)
外部变量(即非静态的外部变量,允许其他文件引用)
局部变量
自动变量,即动态局部变量(离开函数,值就消失)
静态局部变量(离开函数,值依旧保留)
寄存器变量(离开函数,值就消失)
形式参数可以定义为自动变量或寄存器变量
按变量的生存周期分
动态储存
自动变量(本函数内有效)
寄存器变量(本函数内有效)
形式参数(本函数内有效)
静态储存
静态局部变量(函数内有效)
静态外部变量(本文件内有效)
外部变量(用extern声明以后,其他文件可以引用)
按变量值存的位置来分
内存中的静态储存区
静态局部变量
静态外部变量(函数外部的静态变量)
外部变量(可以为其他文件引用)
内存中的动态储存区
自动变量和形式参数
CPU中的寄存器
寄存器变量
static对局部变量和全局变量的作用不同
对局部变量来说,它使变量由动态储存方式改变为静态储存方式
对于全局变量来说,它使变量局部化(局限于本文件),但是依旧为静态储存方式