在C++中,静态变量(包括静态局部变量和静态全局变量)的初始化发生在程序启动时,且仅初始化一次。
对于静态局部变量,可以在函数内部声明,并在函数外部初始化。例如:
void foo() {
static int x = 10; // 静态局部变量
// ...
}
在这个例子中,x
是一个静态局部变量,它只会在第一次调用foo()
函数时被初始化,并且只会被初始化一次。
对于静态全局变量,可以在函数外部声明,并在函数外部初始化。例如:
int x = 10; // 静态全局变量
void foo() {
// ...
}
在这个例子中,x
是一个静态全局变量,它只会在程序启动时被初始化,并且只会被初始化一次。
需要注意的是,静态变量的初始化顺序与它们在代码中的声明顺序有关。如果有多个静态变量需要初始化,它们将按照它们在代码中的声明顺序进行初始化。