在C++中,静态全局变量是在函数外部定义的全局变量,它们在整个程序运行期间只被初始化一次
#include <iostream>
// 静态全局变量
static int staticGlobalVar = 10;
void foo() {
// 错误的使用静态全局变量
staticGlobalVar = 20;
}
int main() {
std::cout << "Before calling foo: " << staticGlobalVar << std::endl; // 输出:Before calling foo: 10
foo();
std::cout << "After calling foo: " << staticGlobalVar << std::endl; // 输出:After calling foo: 20
return 0;
}
在这个示例中,我们有一个名为staticGlobalVar
的静态全局变量。在foo
函数中,我们试图修改它的值。然而,这是错误的,因为静态全局变量的值在程序运行期间只能被修改一次。在这个例子中,staticGlobalVar
的值在第一次调用foo
函数时被修改为20,之后再次调用foo
函数时,它的值将保持不变。
正确的使用静态全局变量的方法是在一个函数内部声明它,并在需要的地方访问它。这样可以确保每次调用该函数时,静态全局变量都会被正确地初始化和修改。