- 全局变量:存储在静态内存空间,未被初始化的全局变量存放在BSS段,初始化后的全局变量存放在数据段(属于静态内存分 配);作用域是整个程序,只需在一个源文件中的定义就能作用域所有的源文件,对所有的文件都可见(extern);
- 局部变量:存储在栈中;程序结束,局部变量消失。
- 静态变量:存储在静态内存空间内;生命周期与程序生命周期一致,当子程序结束时,静态变量不消失,保留上次调用的值。
- 静态全局变量:存储在静态内存空间内;具有全局作用域,只不过如果文件包含多个文件,只作用于定义它的文件里,不能作用于其他文件。
- 静态局部变量:存储在静态内存空间内;具有局部作用域,只被初始化一次,从初始化直到程序运行结束都存在。只对定义自己的函数体始终可见。