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

C語言增量運算符、賦值類型轉換與除法陷阱

     編輯:關於C語言

增量/減量運算符 ++ / --

形式含義值
++x / --x先增/減,後參與運算新值
x++ / x--先參與運算,後增/減舊值

關鍵區別示例

int m = 5, x;
x = m++; // x=5, m=6
x = ++m; // m=7, x=7

賦值中的類型轉換規則

規則: 右值轉換為左值變量的類型。

示例

int i, j;
float f, g = 2.58;
f = i * j; // 整數乘積 → float
i = g;     // 2.58 → 2 (截斷小數部)

整數除法陷阱

錯誤代碼

float f;
int i = 15;
f = i / 2; // 整數除法:15/2=7 → f=7.0 ❌

正確寫法

f = i / 2.0;     // 2.0 為 double,提升 i 為浮點運算
f = (float)i / 2; // 強制轉型
f = i / 2.0f;     // float 常量

類型提升規則速查

  1. 整數運算:char/short → int;同類型運算保持類型
  2. 混合類型:低精度向高精度提升(int→float→double)
  3. 賦值時:右值向左值類型轉換(可能截斷/捨入)

最佳實踐

  • 浮點運算中至少一個操作數帶小數點(2.0)
  • 避免隱式截斷,必要時顯式轉型 (float)
  • 嚴禁在邏輯判斷中混用增量運算符與其他運算(副作用順序未定義)

理解類型轉換規則是避免數值計算錯誤的關鍵,尤其在整數除法、混合運算、賦值截斷場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved