當你聲明一個局部變量,我喜歡這樣:來自非變量變量的值來自哪裏?
int i;
而且你使用這個變量,你會得到不確定的行爲,因爲我還沒有初始化。但我擁有一個「垃圾」價值,這個價值從何而來?它來自內存中的隨機位置嗎?
當你聲明一個局部變量,我喜歡這樣:來自非變量變量的值來自哪裏?
int i;
而且你使用這個變量,你會得到不確定的行爲,因爲我還沒有初始化。但我擁有一個「垃圾」價值,這個價值從何而來?它來自內存中的隨機位置嗎?
你不知道,你不能說。未定義的行爲意味着任何事情都可能發生。
這就是說,在大多數實施方式中實踐和大部分時間int i;
會預留在堆棧上sizeof(int)
字節(其通常是某處在主存儲器中),所以i
值將是任何恰好是在此時疊加。
但是不要依賴它,並且記住這並非總是如此。
它的任何內存在&我以前。
變量通常在內存中有一個位置,在這種情況下,它的值將是該內存位置發生的任何事情。 – juanchopanza