| 運算符 | 含義 | 數學符號 | 示例 |
| < | 小於 | < | a < b |
| <= | 小於等於 | ≤ | a <= b |
| > | 大於 | > | a > b |
| >= | 大於等於 | ≥ | a >= b |
| == | 等於 | = | a == b |
| != | 不等於 | ≠ | a != b |
運算符特性
- 全為雙目運算符(兩個操作數)
- 結合性:左結合
- 優先級:低於算術,高於賦值
- 內部優先級:
< <= > >= > == !=
操作數靈活性
兩側可為:變量、常量、算術表達式、字符常量:
a + b > c - d
x > 3 / 2
'a' + 1 < c
-i - 5 * j == k + 1
嵌套使用(合法但易誤讀)
a > (b > c) // b>c 結果 0/1,再與 a 比較
a != (c == d) // c==d 結果 0/1,再與 a 比較
運算結果:只有 0 和 1
示例
5 > 0 → 1
34 - 12 > 100 → 0
(a=3) > (b=5) → 0 (賦值後 3>5 為假)
綜合輸出示例
#include <stdio.h>
int main() {
char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85;
int r1 = 'a'+5 < c;
int r2 = x-5.25 <= x+y;
printf("%d, %d\n", r1, -i-2*j >= k+1);
printf("%d, %d\n", 1 < j < 5, r2);
printf("%d, %d\n", i+j+k == -2*j, k == j == i+5);
return 0;
}
運行結果
1, 0
1, 1
0, 0
逐行解析
'a'+5 = 102, c='k'=107 → 102<107 真(1);-1-4 >= 4 → -5>=4 假(0)
1:左結合 → (1<2)<5 → 1<5 → 1;x-5.25 <= x+y 真(1)
1+2+3 == -4 → 6==-4 假(0);k==j==i+5 → (3==2)==6 → 0==6 假(0)
if 判斷條件的靈活性
if 判斷條件不限於關系表達式:
== vs = 經典陷阱
==:比較相等(關系運算符)
=:賦值(賦值運算符)
if (a = b) 永遠為真(除非 b=0),極易誤寫
- 編譯器警告:
-Wparentheses / -Wall 可檢測
- 防禦寫法:
if (5 == a)(常量在左,誤寫為 = 會編譯報錯)
- 上一篇文章: C語言邏輯運算符:&&、||、! 真值表、優先級、短路求值與實戰組合條件
- 下一篇文章: C語言 if else 條件判斷語句完整指南
Copyright ©
程式碼之家 All Rights Reserved