唯一三目運算符,形式:表達式1 ? 表達式2 : 表達式3
int x = 50, y;
y = x > 70 ? 100 : 0; // y = 0
// 等價於
if (x > 70) y = 100; else y = 0;
&:單目,取操作數地址*:單目,取地址指向的值int i = 10, j, *m;
m = &i; // m 存 i 的地址
j = *m; // j 獲取 m 指向的值(10)
int x = 50, y;
y = (x = x - 5, x / 5); // 先 x=45,再 45/5=9 → y=9
| 運算符 | 典型用途 |
|---|---|
| ?: | 簡單條件賦值、返回值選擇、宏定義中 |
| &/* | 指針操作、動態內存、函數參數傳址 |
| , | for 循環多變量初始化/遞增、宏展開、表達式序列 |
這三類特殊運算符是 C 語言表達能力靈活性的重要體現,善用可簡化代碼,濫用則降低可讀性。