温馨提示×

c++静态全局变量的错误使用示例

c++
小樊
82
2024-12-06 21:16:17
栏目: 编程语言

在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函数时,它的值将保持不变。

正确的使用静态全局变量的方法是在一个函数内部声明它,并在需要的地方访问它。这样可以确保每次调用该函数时,静态全局变量都会被正确地初始化和修改。

0