首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言未初始化變量:輸出的是隨機垃圾值

     編輯:關於C語言

C 語言未初始化變量:輸出的是隨機垃圾值

在 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;)。
  • 全局/靜態變量默認初始化為 0,但局部變量無此保證。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved