在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;
}
總而言之,靜態變量的生命周期是整個程序運行期間,它們在程序開始時被初始化,在程序結束時被銷毀。靜態變量可以在聲明它們的作用域內保持其值不變,對于靜態全局變量,只能在聲明它們的文件中訪問。