我碰到的東西我從來沒有遇到過。 因爲我知道如何解決它,所以我不在尋找修復程序。我想知道的是編譯器正在做什麼。這僅僅是示例代碼:
if (true)
{
int x = 0;
}
int x = 0;
該代碼產生錯誤「局部變量‘X’不能在此範圍內聲明,因爲它會給予不同的意義,‘X’」。
然而,我的代碼改成這樣:
if (true)
{
int x = 0;
}
x = 0;
我得到錯誤「無法解析的符號‘X’」。
那麼,這是怎麼回事? x是如何在範圍之內和超出範圍的?
我以前就注意到了這一點,並對此感到好奇。我個人很驚訝第一個不編譯,而第二個編譯不應該是正確的。 – 2011-03-31 16:46:25