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