在C++中,static变量的生命周期取决于它们的存储位置。静态变量可以分为两种:静态局部变量和静态全局变量。
void function() {
static int count = 0;
count++;
cout << "Count: " << count << endl;
}
int main() {
function(); // 输出 Count: 1
function(); // 输出 Count: 2
return 0;
}
// File1.cpp
static int globalVar = 10;
// File2.cpp
extern int globalVar;
int main() {
cout << "Global Var: " << globalVar << endl; // 输出 Global Var: 10
return 0;
}
总而言之,静态变量的生命周期是整个程序运行期间,它们在程序开始时被初始化,在程序结束时被销毁。静态变量可以在声明它们的作用域内保持其值不变,对于静态全局变量,只能在声明它们的文件中访问。