預設值:兩個變數的故事
在 C 中,未初始化的變數會帶來難題。傳統觀點認為這些變數應該包含垃圾值。然而,在令人費解的場景中,以下程式碼輸出 0:
int main() { int a; cout << a; return 0; }
為什麼此程式碼的行為異常?
解釋在於局部變數和非局部變數的不同行為。對於給定程式碼中的局部變數(例如“a”),C 預設會為它們分配不確定的值。在沒有初始化的情況下使用這些值會觸發未定義的行為,其後果可能是無害的,也可能是災難性的。
或者,非局部變數(包括執行緒局部變數)從其全域變數繼承零初始化。但是,在提供的範例中,“a”是局部變量,不受此初始化的影響。
為了避免陷阱,強烈建議程式設計師明確初始化所有變數。全局變數雖然在某些利基應用程式中偶爾是合理的,但由於它們可能出現未定義的行為,因此應謹慎對待。
以上是為什麼C中未初始化的局部變數列印0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!