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

C語言運算子優先級完整表與口訣:15 級從高到低、易錯點、結合方向

     編輯:關於C

優先級完整表 (高→低)

級運算子說明結合
1() [] -> .函數調用、下標、成員訪問左→右
2! ~ ++ -- + - * & (type) sizeof單目運算子右→左
3* / %乘除模左→右
4+ -加減左→右
5<< >>移位左→右
6< <= > >=關係左→右
7== !=相等/不等左→右
8&位元 AND左→右
9^位元 XOR左→右
10|位元 OR左→右
11&&邏輯 AND左→右
12||邏輯 OR左→右
13?:條件運算子右→左
14= += -= *= /= %= <<= >>= &= ^= |=賦值右→左
15,逗號運算子左→右

易錯點 Top 5

  1. a & b == c → a & (b == c) (位元 AND 優先級 **低於** 關係/相等)。應寫 (a & b) == c。
  2. a == b || c == d → (a == b) || (c == d) (正確,邏輯 OR 低於相等)。
  3. *p++ → *(p++) (後綴 ++ 最高,先取值再移動指針)。
  4. sizeof int * p → (sizeof int) * p (sizeof 是單目,優先級高於乘法)。應寫 sizeof(int *p) 或 sizeof(int)*p。
  5. a = b = c → a = (b = c) (賦值右結合,先算 b=c 再賦值給 a)。

優先級口訣 (修正版)

括號下標成員一,單目運算二不移;
乘除模三加減四,移位五關係六;
等於不等排第七,位與八異或九;
位或十邏輯與十一,邏輯或十二天;
條件十三賦值十四,逗號十五最低邊。
同級看結合方向,單目賦值條件右向左,
其餘皆是左向右,牢記心中不糊塗。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved