static 修饰的变量区别
时间: 2023-11-04 08:04:25 浏览: 81
extern、static修饰变量的使用及define和const区别
在C++中,`static`关键字可以用来修饰变量,其作用有以下几种:
1. 静态局部变量(在函数内部使用`static`修饰的变量):静态局部变量的生命周期与程序的生命周期一样长。当函数第一次被调用时,静态局部变量被初始化,之后再次调用该函数时,静态局部变量的值会保持上次调用的结果。它的作用域仅限于函数内部。
2. 静态全局变量(在全局作用域使用`static`修饰的变量):静态全局变量的作用域仅限于定义它的文件内部,不能被其他文件访问。它的生命周期与程序的生命周期一样长。
3. 类的静态成员变量(在类中使用`static`修饰的变量):静态成员变量属于类,而不是属于类的任何一个对象。它的作用域为整个类,可以通过类名和作用域运算符来访问。它的生命周期与程序的生命周期一样长。
需要注意的是,静态变量只会被初始化一次,即使多次创建对象或调用函数,其值也不会被重新初始化。另外,静态变量不占用对象的内存空间,而是在全局数据区分配内存。
阅读全文