#include <iostream>
using namespace std;
int x=24 ;
int main()
{
int x=0;
{
int x=5 ;
::x= x+2 ;
}
cout<<::x<<endl ;//first
cout<<x<<endl ; // second
return 0;
}
在这个简单的示例中,我使用的是代码块,我知道我可以使用范围解析运算符修改全局变量。 我在这个例子中修改了全局变量,但我想知道是否有一种方法可以修改特定范围内的变量,比如 main 函数(不需要(范围解析运算符)方式) 这意味着在这个例子中我需要第一个输出是 24 而下一个是 7 。 对不起我的英语我希望能理解这个问题
最佳答案
在 C++ 中无法从特定范围访问变量。
如果您在内部作用域中声明一个对象或变量与外部作用域中的对象或变量同名,那么就所有意图和目的而言,外部作用域的对象或变量在内部作用域中不直接可见.
如果您已经有指向外部作用域对象的指针或引用,当然,您仍然可以间接访问它。您只是无法直接访问它。
这是C和C++的基本概念;但许多其他编程语言共享相同的类似概念。
关于c++ - 如何访问 C++ 中的特定范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26309863/