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

C 語言關係運算子完整表:不等於、大於、大於等於寫法與優先級

     編輯:C 語言問答

六大關係運算子

運算子含義範例 (a=10, b=5)結果
==等於a == b0 (假)
!=不等於a != b1 (真)
>大於a > b1 (真)
<小於a < b0 (假)
>=大於等於a >= b1 (真)
<=小於等於a <= b0 (假)

在 if 語句中檢測變數 a 與 0 的關係


int a = -5; // 測試值

if (a != 0) printf("a 不等於 0\n"); // 真
if (a > 0)  printf("a 大於 0\n");   // 假
if (a >= 0) printf("a 大於等於 0\n"); // 假
if (a < 0)  printf("a 小於 0\n");   // 真
if (a <= 0) printf("a 小於等於 0\n"); // 真

關鍵注意事項

  1. 區分 = (賦值) 與 == (比較):
    
    if (a = 0)  // 錯誤!賦值 a=0,表達式值為 0 (假),if 不執行,且 a 被改為 0
    if (a == 0) // 正確!比較 a 是否為 0
    // 防禦性寫法:if (0 == a) 誤寫成 = 會編譯報錯
            
  2. 浮點數比較陷阱:
    
    float x = 0.1f + 0.2f; // 0.30000001
    if (x == 0.3f) // 可能為假!
    // 正確:比較絕對差值是否小於極小值 EPSILON
    const float EPS = 1e-6;
    if (fabs(x - 0.3f) < EPS) ...
            
  3. 運算子優先級:關係運算子優先級 低於 算術運算子,高於 邏輯運算子 (&&, ||)。
    
    a + b > c * d  // 等價於 (a+b) > (c*d)
    a > b && c < d // 等價於 (a>b) && (c
  4. 鏈式比較不支援:0 < a < 10 在 C 中合法但**邏輯錯誤** (先算 0 得 0/1,再比較 < 10 恆真)。正確寫法:(0 < a) && (a < 10)。

真值與假值

  • C 語言無 bool 關鍵字 (C99 <stdbool.h> 提供 bool, true, false)。
  • 關係運算結果:真為 1,假為 0 (類型為 int)。
  • if, while, for 條件判斷:非 0 為真,0 為假。

總結

牢記 != (不等於)、> (大於)、>= (大於等於) 三個符號組合。善用括號明確優先級,警惕浮點數比較與賦值/比較混淆。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved