c++ - 如何访问 C++ 中的特定范围?

标签 c++ scope

#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/

相关文章:

c++ - 模板: class specialization

java - Java 中是否有像 C++ 那样的成员初始化列表语法?

判断两段是否相交的C++程序

c++ - 访问必须在 if 语句内进行的 int

coldfusion - CF 10 与 CF MX7 中的可变范围

javascript - 如何从子函数中更改函数的返回值 (JavaScript)

c++ - 可以通过这种方式声明一个全局对象类吗?

c - 如何在C中构造 "extend"?

javascript - 什么时候在(跨浏览器)JavaScript 中必须在本地范围内缓存变量查找?

c++ - Eigen "Sparse matrix format"示例是否包含错误?