温馨提示×

c++中static变量和全局变量的区别

c++
小樊
98
2024-07-17 16:55:44
栏目: 编程语言

  1. 作用域不同:全局变量在整个程序中都是可见的,可以被所有函数访问;而static变量只在声明它的文件中可见,不能被其他文件访问。

  2. 生命周期不同:全局变量的生命周期从程序开始到程序结束,而static变量的生命周期是在程序运行过程中,只有在其所属的函数或代码块执行时存在。

  3. 可访问性不同:全局变量可以被其他文件访问,而static变量只能在声明它的文件中访问。

  4. 初始化方式不同:全局变量在定义时会进行默认初始化(0),而static变量在局部作用域中默认初始化为0,全局静态变量初始化为0,局部静态变量在第一次调用时初始化。

  5. 存储位置不同:全局变量存储在静态数据区,而static变量存储在全局/静态存储区(与全局变量不同,static变量只能在定义它的编译单元中可见)。

0