在C++中,靜態變量(包括靜態局部變量和靜態全局變量)的初始化發生在程序啟動時,且僅初始化一次。
對于靜態局部變量,可以在函數內部聲明,并在函數外部初始化。例如:
void foo() {
static int x = 10; // 靜態局部變量
// ...
}
在這個例子中,x
是一個靜態局部變量,它只會在第一次調用foo()
函數時被初始化,并且只會被初始化一次。
對于靜態全局變量,可以在函數外部聲明,并在函數外部初始化。例如:
int x = 10; // 靜態全局變量
void foo() {
// ...
}
在這個例子中,x
是一個靜態全局變量,它只會在程序啟動時被初始化,并且只會被初始化一次。
需要注意的是,靜態變量的初始化順序與它們在代碼中的聲明順序有關。如果有多個靜態變量需要初始化,它們將按照它們在代碼中的聲明順序進行初始化。