2013-03-01 77 views
0

考慮一下:變量範圍在C++

for (int iii=0; iii < 10; iii++) 
    cout << iii << " "; 

爲什麼不III失去它的價值第一迭代後?

+2

你的意思是第一個for語句或那個for循環的第一遍? – Gjordis 2013-03-01 08:25:28

+0

失去價值在​​哪裏? 「在第一次之後」是什麼意思? – Freak 2013-03-01 08:25:50

+0

爲什麼會失去它? – 2013-03-01 08:26:02

回答

3

由於以下for

for (initialization ; condition ; increment) 
{ 
    body; 
} 

等同於以下while

{ 
    initialization; 
    while (condition) 
    { 
     body; 
     increment; 
    } 
} 
+0

是的,這是我正在尋找的答案。雖然在查看for時看不到初始化是這樣完成的。 – 2013-03-01 08:32:04

3

由於for循環中定義的變量範圍是for語句的正文。

對於您的情況,iiifor循環內可見,但不在其外部。

+0

所以它就像{int i; for(i = 0; ...)}? – 2013-03-01 08:26:42

+0

是的,你可以這樣想, – mvp 2013-03-01 08:27:24

3

因爲這相當於:

{ 
    int iii = 0; 
    while(iii < 10){ 
     cout << iii << " "; 
     iii++; 
    } 
}