一、運算符分類總覽(共 10 大類)
| 類別 | 運算符 | 說明 |
| 算術 | + - * / % ++ -- | 基本數學運算,% 僅限整型 |
| 關係 | > < == >= <= != | 比較運算,結果為 0/1 |
| 邏輯 | && || ! | 短路求值,! 優先級最高 |
| 位操作 | & | ~ ^ << >> | 按位運算,~ 為單目取反 |
| 賦值 | = += -= *= /= %= &= ^= |= <<= >>= | 右結合,復合賦值等價於展開形式 |
| 條件 | ?: | 三目運算符,右結合 |
| 逗號 | , | 順序求值,取最後表達式值 |
| 指標 | * & | 間接訪問、取地址 |
| sizeof | sizeof | 編譯期計算類型/表達式字節數 |
| 特殊 | () [] -> . | 函數調用、下標、結構體成員訪問 |
二、優先級與結合性核心規則
- 15 級優先級:第 1 級最高(如
() [] -> .),第 15 級最低(,)。
- 結合性:
- 多數為左結合(如算術、位移、關係、位與、位或、邏輯與/或)。
- 右結合:單目運算符(
++ -- ! ~ * & + - sizeof (type))、賦值運算符、條件運算符 ?:。
- 強制類型轉換:
(類型)表達式,屬單目運算符,優先級極高(第 2 級),右結合。
三、自增自減的「前後」關鍵差異
| 形式 | 操作順序 | 表達式值 |
++i / --i | 先增/減,後參與運算 | 新值 |
i++ / i-- | 先參與運算,後增/減 | 舊值 |
陷阱警示:同一表達式中對同一變量多次修改(如 i++ + ++i)屬未定義行為,嚴禁使用。
四、基本數據類型大小與範圍(32 位系統典型值)
| 類型 | 字節數 | 範圍 / 精度 |
| char / signed char / unsigned char | 1 | -128~127 / 0~255 |
| short / unsigned short | 2 | -32768~32767 / 0~65535 |
| int / unsigned int | 4 | -2^31~2^31-1 / 0~2^32-1 |
| long / unsigned long | 4 | 同 int(Windows/Linux 32/64 位可能不同) |
| long long / unsigned long long | 8 | ±9.22e18 / 0~1.84e19 |
| float | 4 | ~7 位有效數字,範圍 ~3.4e±38 |
| double | 8 | ~15 位有效數字,範圍 ~1.7e±308 |
| long double | 8/10/12/16 | 視實現而定,通常 ≥ double |
五、常量後綴速查
L/l:長整型(123L)
U/u:無符號(123U)
F/f:float 型(3.14f,默認 double)
六、常量分類
整數、長整數、無符號數、浮點數、字符('a')、字符串("abc")、符號常量(#define)、轉義字符(\n \t 等)。