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

C 語言運算符優先級完整表與 sizeof、復合賦值詳解

     編輯:C 語言基礎

sizeof 運算符

  • 單目運算符,返回類型/變量佔用字節數(編譯期常量)。
  • `sizeof(int)=2/4`,`sizeof(double)=8`,`sizeof(float)=4`。
  • 可用於變量:`float f; int i=sizeof(f);` → i=4。

復合賦值運算符

形式:`var op= expr` 等價 `var = var op (expr)`。適用所有二元算術/位運算符。
例:`a+=b` ≡ `a=a+b`,`a/=b-c` ≡ `a=a/(b-c)`,`a&=b` ≡ `a=a&b`。

完整優先級表(高→低)

  1. `()` `[]` `->` `.`
  2. `!` `~` `-` `++` `--` `&`(取址) `*`(解引用) `sizeof` `(type)`
  3. `*` `/` `%`
  4. `+` `-`
  5. `<<` `>>`
  6. `<` `<=` `>` `>=`
  7. `==` `!=`
  8. `&`(位與)
  9. `^`(位異或)
  10. `|`(位或)
  11. `&&`(邏輯與)
  12. `||`(邏輯或)
  13. `?:`(三元)
  14. `=` `+=` `-=` `*=` `/=` `%=` `&=` `^=` `|=` `<<=` `>>=`
  15. `,`(逗號)

結合性

  • 多數左結合(`a+b+c` ≡ `(a+b)+c`)。
  • 單目、三元、賦值、逗號為右結合(`a=b=c` ≡ `a=(b=c)`)。

驗證示例

`10>4 && !(100<99) || 3<=5` → `1 && !0 || 1` → `1 && 1 || 1` → `1 || 1` → `1`。
`10>4 && !(100<99) && 3<=5` → `1 && 1 && 1` → `1`(原文示例有誤,實際為 1)。

總結

熟記優先級與結合性是寫出無 Bug 表達式的前提,複雜表達式**多加括號**是工程佳作風。

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