我是新的C++和跨越這來了:C++的變量範圍
for (int i=0 ; i<500 ; i++) {
//to do
}
int i;
std::cin >> i;
更新:使用Visual Studio 2010(和它使用的編譯器)外的for循環的值爲500後的第i打電話給我>>我;我使用Visual Studio調試器< <(這是問題 - 感謝格雷格)看值
現在我期待
一)INT I; for循環之外,int i = 0;是不同的變量,也就是說,for循環i在大括號關閉時超出範圍
b)一旦我意識到它沒有超出範圍,我想知道爲什麼它不會被cin覆蓋。我認爲b)是故意的(雖然我很難在Bjarne Stroustrup的C++書中找到它的頁面),但我確定它在同一本書中聲明變量在括號中包含範圍
在大多數其他語言中,我知道在for構造中聲明變量時,它們被認爲是在for循環的大括號中,但在C++中,這似乎不是這種情況。
是這樣的話,是這個特定的for循環或是否有任何其他情況下,出現這種情況(我想不出任何其他的,但嘿我是新)
感謝
什麼使你相信它不會超出範圍? for循環中的'i'只在for循環中有效。 – chris
除非您使用的舊版Microsoft編譯器沒有正確實現規範。 –
@GregHewgill,對,我想我對這樣做有點微弱的記憶。你確認了它。 – chris