0
所以這是一個更理想的問題,但在這裏。假設我有以下C代碼:循環中的變量變化
for(parameter) {
//do something
if(condition) {
variable = Value;
}
}
說循環運行多次,並且還說第一次循環時條件滿足。但第二次循環條件並不令人滿意。變量是否仍等於第一個循環中賦值的值?
所以這是一個更理想的問題,但在這裏。假設我有以下C代碼:循環中的變量變化
for(parameter) {
//do something
if(condition) {
variable = Value;
}
}
說循環運行多次,並且還說第一次循環時條件滿足。但第二次循環條件並不令人滿意。變量是否仍等於第一個循環中賦值的值?
是的,除非您明確更改了值,否則將是第一次迭代中指定的值。
請注意,只有當控件位於for循環內時。一旦控制超出該函數,variable
中的值將取決於其存儲類別,即:它是如何聲明的。如果它是一個本地/自動變量,它不會超出函數{ }
的範圍,而如果它是static
,它將在整個程序生命週期內保持活動狀態並保持該狀態。
我是想多了,爲什麼問題
的,因爲作爲一個規則,在C和C++的變量,而他們活着保留他們的價值觀。
一個自動/本地變量在{ }
範圍內存在,它在其中被定義。所以它會保留分配給它的值(,除非明確更改)直到控制仍在範圍內。
static
和global
變量在整個程序生命週期中都是有效的。因此,他們保留分配給他們的值(,除非明確更改),直到程序結束。
爲什麼不呢? – Zirak 2013-04-25 03:46:19
我的意思是更多的是爲什麼問題。 – codedude 2013-04-25 03:56:29