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
