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

C 語言運算符優先級完整表與口訣速記法

     編輯:關於C

運算符優先級完整表 (高→低)

級運算符名稱結合性
1() [] -> .函數調用、下標、成員訪問左→右
2++ -- + - ! ~ * & (type) sizeof後置/前置自增減、一元正負、邏輯非、按位取反、解引用、取址、強轉、sizeof右→左
3* / %乘除模左→右
4+ -加減左→右
5<< >>左右移左→右
6< <= > >=關系比較左→右
7== !=相等比較左→右
8&按位與左→右
9^按位異或左→右
10|按位或左→右
11&&邏輯與左→右
12||邏輯或左→右
13?:條件運算符右→左
14= += -= *= /= %= <<= >>= &= ^= |=賦值及複合賦值右→左
15,逗號運算符左→右

易錯優先級陷阱

  • *p++ ≡ *(p++) (後置++ 優先級高於 *)
  • &a + b ≡ (&a) + b (取址優先級高於 +)
  • a == b & c ≡ (a == b) & c (== 優先級高於 &)
  • a & b == c ≡ a & (b == c) (== 優先級高於 &) —— 極易寫錯!
  • sizeof int * p ≡ (sizeof int) * p (sizeof 優先級高於 *)

優先級口訣(順口溜)

括號成員第一;
單目運算第二;
乘除模三,加減四;
移位五,關系六;
等於不等排第七;
位與異或位或,八九十;
邏輯與十一,邏輯或十二;
條件十三,賦值十四;
逗號十五最低級。

記憶鍵

  • 單目 都在二級(除後置++/-- 在一級);
  • 算術 > 移位 > 關系 > 相等 > 位運算 > 邏輯運算 > 條件 > 賦值 > 逗號;
  • && 高於 ||(邏輯與比邏輯或緊);
  • 不確定時加括號,寫給人看,不給編譯器猜。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved