2017-04-08 110 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不屬於名稱空間(包括全局名稱空間),類或枚舉,因此無法限定其名稱,因此無法訪問。