2017-04-08 109 views
1

说这是一段代码来演示如何使用本地和全局变量。我试图向一个小辈解释这一点,他问我这个问题。获取变量的中间范围值

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

#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(); 
} 
+2

你不能。重命名其中一个变量。 – melpomene

+1

为什么生活困难,代码难以辨认?具有多个具有相同名称的变量会使错误更可能发生 –

回答

6

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