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

C語言運算符優先級速記口訣:從最高到最低一網打盡

     編輯:關於C

C 運算符優先級繁多(15 級),死記硬背易忘。本文提供一套**順口溜+分組記憶法**,配合優先級表,讓你秒級回憶、寫代碼不加冗餘括號、讀代碼不懵圈。

順口溜(15 級自高到低)

圓下箭頭一頓號
非凡增減富強星地長
三乘除、四加減、五移位
千萬別把魚忘記,它在盛飯的廚子裡
小燈大燈燈燈不等
爸喂魚、舅疑惑、裸雞也疑惑
十三姨、十四父、十五逗、兜到底

逐句解碼

口訣片段運算符級別結合性
圓() 函數調用1左→右
下[] 下標訪問
箭頭-> 結構體指針成員
頓號. 結構體成員
非! 邏輯非2右→左
凡~ 按位取反
增減++ -- 前綴/後綴
富+ - 一元正/負
強(type) 強制轉換
星* 解引用
地& 取地址
長sizeof
三乘除* / %3左→右
四加減+ -4左→右
五移位<< >>5左→右
魚(餘)% 求模3左→右
小燈< <=6左→右
大燈> >=
燈燈不等== !=7左→右
爸喂魚& 按位與8左→右
舅疑惑^ 按位異或9左→右
裸雞也疑惑| 按位或10左→右
(邏輯與)&&11左→右
(邏輯或)||12左→右
十三姨?: 條件運算符13右→左
十四父= += -= *= /= %= &= ^= |= <<= >>=14右→左
十五逗, 逗號運算符15左→右

記憶鉤子

  • 前 4 級:后綴(1) → 一元(2) → 乘除模(3) → 加減(4) → 移位(5) —— **「后一乘加移」**。
  • 關系/相等:< < <= > >= (6) → == != (7) —— **「先比大小,再比相等」**。
  • 位運算三兄弟:& (8) → ^ (9) → | (10) —— **「與、異、或」**,優先級遞減。
  • 邏輯雙雄:&& (11) → || (12) —— **「先與後或」**。
  • 最後三級:?: (13) → 賦值 (14) → , (15) —— **「問、賦、逗」**。

實戰建議

  1. 不確定就加括號:編譯器優化會消除冗餘括號,可讀性至上。
  2. 避免依賴優先級的花哨寫法:如 a = b += c、a ? b : c = d。
  3. 常用組合背熟:*p++ (后綴++ > *),++*p (前綴++ = *),&a[0] (= a)。
  4. 工具輔助:gcc -Wparentheses 警告建議加括號的表達式。

完整優先級速查表

級  運算符                          結合性  說明
1   () [] -> .                      L→R     后綴/基本
2   ! ~ ++ -- + - * & sizeof (type) R→L     一元
3   * / %                           L→R     乘除模
4   + -                             L→R     加減
5   << >>                           L→R     移位
6   < <= > >=                       L→R     關系
7   == !=                           L→R     相等
8   &                               L→R     按位與
9   ^                               L→R     按位異或
10  |                               L→R     按位或
11  &&                              L→R     邏輯與
12  ||                              L→R     邏輯或
13  ?:                              R→L     條件
14  = += -= *= /= %= &= ^= |= <<= >>= R→L   賦值
15  ,                               L→R     逗號
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved