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

C語言關系運算符:六大運算符、優先級、結果值與 if 判斷條件深度解析

     編輯:C 語言基礎

六大關系運算符

運算符特性

  • 全為雙目運算符(兩個操作數)
  • 結合性:左結合
  • 優先級:低於算術,高於賦值
  • 內部優先級:< <= > >= > == !=

操作數靈活性

兩側可為:變量、常量、算術表達式、字符常量:

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

  • 條件成立 → 1(真)
  • 條件不成立 → 0(假)

示例

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

逐行解析

  1. 'a'+5 = 102, c='k'=107 → 102<107 真(1);-1-4 >= 4 → -5>=4 假(0)
  2. 1:左結合 → (1<2)<5 → 1<5 → 1;x-5.25 <= x+y 真(1)
  3. 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)(常量在左,誤寫為 = 會編譯報錯)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
運算符含義數學符號示例
<小於<a < b
<=小於等於≤a <= b
>大於>a > b
>=大於等於≥a >= b
==等於=a == b
!=不等於≠a != b