全局变量、静态变量、局部变量、const变量

生命周期:

  • 一个变量存在的周期

作用域:

  • 一个变量可以被引用的范围
作用域 生命周期 定义方法 内存分布 注意
全局变量 全局作用域(只需在一个源文件定义,就可作用于所有源文件) 程序运行期一直存在 引用方法:其他文件中要使用必须用 extern 关键字声明,或通过包含头文件的方式 全局(静态)存储区 如果两个文件中都定义了相同名字的全局变量,则连接出错:变量重定义
全局静态变量 文件作用域(只在被定义的文件中可见) 程序运行期一直存在 static 关键字、const 关键字 全局(静态)存储区 只要文件不相互包含,两个不同文件变量可同名
静态局部变量 局部作用域 程序运行期一直存在 局部作用域中用 static 定义 全局(静态)存储区 只被初始化一次,多线程中可加锁保护
局部变量 局部作用域 程序运行出局部作用域即被销毁 用 auto 指示符定义,也可省略 栈区

猜你喜欢

转载自blog.csdn.net/weixin_39554266/article/details/83652993