当前位置:首页C++程序设计 > 正文

C++ 中的全局变量和局部变量

作者:野牛程序员:2023-04-13 12:00:12C++程序设计阅读 2785

C++ 中的变量有两种类型:全局变量和局部变量。全局变量定义在函数外部,在整个程序中都可以被访问,而局部变量定义在函数内部,只能在函数内部被访问。

下面我们来看一下全局变量和局部变量的定义方式:

int globalVar = 10; // 全局变量

void function() {
    int localVar = 20; // 局部变量
    // ...
}

全局变量的作用域是从定义处开始到文件末尾,可以被整个程序中的任何函数访问。而局部变量的作用域仅限于定义它的函数内部,在函数外部无法访问。

举个例子,如果我们在一个函数中定义了一个局部变量和一个同名的全局变量,那么在函数内部访问这个变量时,优先使用的是局部变量,如果想要使用全局变量,需要使用作用域解析运算符 :: 显式指明:

int var = 10; // 全局变量

void function() {
    int var = 20; // 局部变量
    std::cout << var << std::endl; // 输出 20
    std::cout << ::var << std::endl; // 输出 10,使用全局变量
}

在 C++ 中,还有一个变量类型叫做静态局部变量,它和普通局部变量的作用域和使用方法基本一致,但是它的生命周期比普通局部变量长。静态局部变量的初始化只会在第一次调用函数时进行,之后再次调用时不会重新初始化,仍然使用上一次的值。静态局部变量可以通过 static 关键字来定义:

void function() {
    static int staticVar = 0; // 静态局部变量,第一次调用时初始化为 0
    int localVar = 0; // 普通局部变量,每次调用时都会初始化为 0
    std::cout << "staticVar: " << staticVar << ", localVar: " << localVar << std::endl;
    staticVar++;
    localVar++;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击