获取变量的中间范围值

时间:2017-04-08 11:42:30

标签: c++

假设这是一段代码,用于演示如何使用本地和全局变量。我试图向一个初级家伙解释这个,他问我这个问题。

在下面的代码中,你应该怎么做才能从外部循环中获取'x'的值。在这种情况下,如何访问其值为2的“x”。

#include<iostream>
using namespace std;
int x = 1;
void fun() {
  int x = 2;
  {
    int x = 3;
    cout << x << endl; // This will give 3
    cout << ::x << endl; // This will give 1
    // What should I write here to get x = 2.
  }
}
int main() {
  fun();
}

1 个答案:

答案 0 :(得分:6)

你做不到。第一个x的名称已被第二个x隐藏。由于第一个x不属于命名空间(包括全局命名空间),类或枚举,因此您无法限定其名称,因此无法访问它。