運算符是構建表達式的基石。本文系統整理 C 語言 10 大類運算符、15 級優先級、結合性規則、強制轉換與自增自減細節,附帶基本類型分類與常量後綴速查,適合初學夯實基礎、老手快速查閱。
| 類別 | 運算符 | 數量 |
|---|---|---|
| 算術 | `+` `-` `*` `/` `%` `++` `--` | 7 |
| 關係 | `>` `<` `==` `>=` `<=` `!=` | 6 |
| 邏輯 | `&&` `||` `!` | 3 |
| 位操作 | `&` `|` `~` `^` `<<` `>>` | 6 |
| 賦值 | `=` `+=` `-=` `*=` `/=` `%=` `&=` `|=` `^=` `<<=` `>>=` | 11 |
| 條件 | `?:` | 1 (三目) |
| 逗號 | `,` | 1 |
| 指針 | `*` (間接) `&` (取址) | 2 |
| 求字節數 | `sizeof` | 1 |
| 特殊 | `()` `[]` `->` `.` | 4 |
共 15 級,關鍵節點:
口訣:**單目、乘除、加減、移位、關係、邏輯、條件、賦值、逗號**;單目/條件/賦值右結合,其餘左結合。
(類型說明符) (表達式)
// 例:(float)int_var → 提升精度避免整除截斷
| 形式 | 操作順序 | 表達式值 |
|---|---|---|
| ++i / --i | 先增/減,再參與運算 | 新值 |
| i++ / i-- | 先參與運算,再增/減 | 舊值 |
⚠️ 同一表達式多次修改同一變量 → UB (見《序列點》文章)。
| 類型 | 位元組 | 範圍 / 精度 |
|---|---|---|
| char | 1 | -128~127 / 0~255 |
| short | 2 | -32,768~32,767 |
| int | 4 | -2,147,483,648~2,147,483,647 |
| long | 4/8 | 平台相關 |
| float | 4 | ~7 位有效數字,範圍 3.4E±38 |
| double | 8 | ~15 位有效數字,範圍 1.7E±308 |
例:`123L`、`0xFFUL`、`3.14f`。
整數、長整數、無符號數、浮點數、字符 (`'a'`)、字符串 (`"abc"`)、符號常量 (`#define`)、轉義字符 (`\n`、`\x1F`)。
收藏本手冊,寫表達式不再查手冊,優先級錯誤零發生!