看板 Programming 關於我們 聯絡資訊
※ 引述《quota@kkcity.com.tw (大改名片檔)》之銘言: : 基本上 : 第一個結果是對的,因為這是int型態變數,c語言不會自動轉換 : 可是問題在於第二個..為何會出現小數點? 基本上 第一個結果 (1.a) 也是錯的, 被印出來的是堆疊空間的數值 多印個幾次, 數值會相對變化 至於第二個結果 (2.a), 那是因為前面計算處理過 float b 加上有呼叫 printf(), 所以此值尚在堆疊中未被破壞, 因此才會印出 17.5 不然, 可以在印出 2.a 之前插入一行 printf("b=%f", b=0); 這時, 第二個結果 (2.a) 就會印出 0 這已經是老問題了 冏 -- 看的懂 x86 組語的話, 使用 gcc 編譯時可以加個參數 -S 產生反組譯碼 (AT&T 格式) 出來看就知道了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.86.136.1
zha0::D 124.8.71.239 05/31 01:32