2013-04-25 93 views
0

所以這是一個更理想的問題,但在這裏。假設我有以下C代碼:循環中的變量變化

for(parameter) { 
    //do something 
    if(condition) { 
     variable = Value; 
    } 
} 

說循環運行多次,並且還說第一次循環時條件滿足。但第二次循環條件並不令人滿意。變量是否仍等於第一個循環中賦值的值?

+0

爲什麼不呢? – Zirak 2013-04-25 03:46:19

+0

我的意思是更多的是爲什麼問題。 – codedude 2013-04-25 03:56:29

回答

2

是的,除非您明確更改了值,否則將是第一次迭代中指定的值。

請注意,只有當控件位於for循環內時。一旦控制超出該函數,variable中的值將取決於其存儲類別,即:它是如何聲明的。如果它是一個本地/自動變量,它不會超出函數{ }的範圍,而如果它是static,它將在整個程序生命週期內保持活動狀態並保持該狀態。


我是想多了,爲什麼問題

的,因爲作爲一個規則,在C和C++的變量,而他們活着保留他們的價值觀。

一個自動/本地變量在{ }範圍內存在,它在其中被定義。所以它會保留分配給它的值(,除非明確更改)直到控制仍在範圍內。

staticglobal變量在整個程序生命週期中都是有效的。因此,他們保留分配給他們的值(,除非明確更改),直到程序結束。