全局变量和局部变量作用域重叠时,全局变量有效
时间: 2024-03-10 13:44:12 浏览: 68
全局变量&局部变量
是的,当全局变量和局部变量的作用域重叠时,全局变量仍然有效。
在 C++ 中,变量的作用域是指变量可以被访问的范围。全局变量在整个程序中都是可见的,而局部变量只在定义它的函数或语句块中可见。
如果在一个函数中定义了与全局变量同名的局部变量,那么在该函数中访问该变量时,会使用局部变量而不是全局变量。但是,当离开该函数后,访问该变量时又会使用全局变量。
例如,下面的代码定义了一个全局变量 `num` 和一个局部变量 `num`:
```cpp
#include <iostream>
using namespace std;
int num = 10;
int main() {
int num = 20;
cout << "局部变量 num 的值为:" << num << endl;
cout << "全局变量 num 的值为:" << ::num << endl;
return 0;
}
```
在 `main` 函数中,定义了一个与全局变量同名的局部变量 `num`,并输出了它的值和全局变量 `num` 的值。在输出中,使用了作用域解析运算符 `::` 来访问全局变量 `num`。
输出结果为:
```
局部变量 num 的值为:20
全局变量 num 的值为:10
```
可以看到,虽然在 `main` 函数中定义了局部变量 `num`,但是当离开 `main` 函数后,全局变量 `num` 仍然有效。
阅读全文