在 C 語言中,局部變量若未顯式初始化,其值是不確定的(通常稱為「垃圾值」或「隨機值」),取決於棧上殘留的數據,與編譯器、優化等級、運行環境均有關。
#include <stdio.h>
int main(void) {
int a, b, c, d;
printf("a = %d\n", a);
printf("b = %d\n", b);
printf("c = %d\n", c);
printf("d = %d\n", d);
return 0;
}
a = -123456
b = 32767
c = 0
d = 12345
每次運行結果可能不同。GCC 編譯選項 -g3 等不影響此行為。
int a = 0;)。