
- C程式設計教程
- C - 首頁
- C語言基礎
- C - 概述
- C - 特性
- C - 歷史
- C - 環境設定
- C - 程式結構
- C - Hello World
- C - 編譯過程
- C - 註釋
- C - 詞法單元
- C - 關鍵字
- C - 識別符號
- C - 使用者輸入
- C - 基本語法
- C - 資料型別
- C - 變數
- C - 整數提升
- C - 型別轉換
- C - 型別強制轉換
- C - 布林型別
- C語言中的常量和字面量
- C - 常量
- C - 字面量
- C - 轉義序列
- C - 格式說明符
- C語言中的運算子
- C - 運算子
- C - 算術運算子
- C - 關係運算符
- C - 邏輯運算子
- C - 位運算子
- C - 賦值運算子
- C - 一元運算子
- C - 自增和自減運算子
- C - 三元運算子
- C - sizeof 運算子
- C - 運算子優先順序
- C - 其他運算子
- C語言中的決策控制
- C - 決策控制
- C - if 語句
- C - if...else 語句
- C - 巢狀if語句
- C - switch 語句
- C - 巢狀switch語句
- C語言中的迴圈
- C - 迴圈
- C - while 迴圈
- C - for 迴圈
- C - do...while 迴圈
- C - 巢狀迴圈
- C - 無限迴圈
- C - break 語句
- C - continue 語句
- C - goto 語句
- C語言中的函式
- C - 函式
- C - 主函式
- C - 按值呼叫函式
- C - 按引用呼叫函式
- C - 巢狀函式
- C - 可變引數函式
- C - 使用者定義函式
- C - 回撥函式
- C - 返回語句
- C - 遞迴
- C語言中的作用域規則
- C - 作用域規則
- C - 靜態變數
- C - 全域性變數
- C語言中的陣列
- C - 陣列
- C - 陣列的特性
- C - 多維陣列
- C - 將陣列傳遞給函式
- C - 從函式返回陣列
- C - 變長陣列
- C語言中的指標
- C - 指標
- C - 指標和陣列
- C - 指標的應用
- C - 指標運算
- C - 指標陣列
- C - 指標指向指標
- C - 將指標傳遞給函式
- C - 從函式返回指標
- C - 函式指標
- C - 指向陣列的指標
- C - 指向結構體的指標
- C - 指標鏈
- C - 指標與陣列
- C - 字元指標和函式
- C - 空指標
- C - void 指標
- C - 野指標
- C - 解引用指標
- C - 近、遠和巨型指標
- C - 指標陣列的初始化
- C - 指標與多維陣列
- C語言中的字串
- C - 字串
- C - 字串陣列
- C - 特殊字元
- C語言中的結構體和聯合體
- C - 結構體
- C - 結構體和函式
- C - 結構體陣列
- C - 自引用結構體
- C - 查詢表
- C - 點(.)運算子
- C - 列舉(或enum)
- C - 結構體填充和打包
- C - 巢狀結構體
- C - 匿名結構體和聯合體
- C - 聯合體
- C - 位段
- C - Typedef
- C語言中的檔案處理
- C - 輸入與輸出
- C - 檔案I/O(檔案處理)
- C預處理器
- C - 預處理器
- C - 指令
- C - 預處理器運算子
- C - 宏
- C - 標頭檔案
- C語言中的記憶體管理
- C - 記憶體管理
- C - 記憶體地址
- C - 儲存類
- 其他主題
- C - 錯誤處理
- C - 可變引數
- C - 命令執行
- C - 數學函式
- C - static 關鍵字
- C - 隨機數生成
- C - 命令列引數
- C程式設計資源
- C - 問答
- C - 快速指南
- C - 速查表
- C - 有用資源
- C - 討論
C語言中的關係運算符
C語言中的關係運算符用於比較兩個值。常見的尖括號<和>是關係運算符,此外還有下表中列出的其他一些運算子。
這些關係運算符用於布林表示式。所有關係運算符都計算結果為真或假。
C語言沒有布林資料型別。相反,“0”被解釋為假,任何非零值都被視為真。
示例1
以下是一個C語言中關係運算符的簡單示例:
#include <stdio.h> int main(){ int op1 = 5; int op2 = 3; printf("op1: %d op2: %d op1 < op2: %d\n", op1, op2, op1 < op2); return 0; }
輸出
執行程式碼並檢查其輸出:
op1: 5 op2: 3 op1 < op2: 0
關係運算符在C語言中的決策控制和迴圈語句中起著重要作用。
下表列出了C語言中的所有關係運算符:
運算子 | 描述 | 示例 |
---|---|---|
== | 檢查兩個運算元的值是否相等。如果相等,則條件為真。 | (A == B) |
!= | 檢查兩個運算元的值是否不相等。如果不相等,則條件為真。 | (A != B) |
> | 檢查左運算元的值是否大於右運算元的值。如果是,則條件為真。 | (A > B) |
< | 檢查左運算元的值是否小於右運算元的值。如果是,則條件為真。 | (A < B) |
>= | 檢查左運算元的值是否大於或等於右運算元的值。如果是,則條件為真。 | (A >= B) |
<= | 檢查左運算元的值是否小於或等於右運算元的值。如果是,則條件為真。 | (A <= B) |
所有關係運算符都是二元運算子。由於它們執行比較,因此需要兩側都有兩個運算元。
我們在C語言中使用=符號作為賦值運算子。因此,C語言使用“==”(雙等號)作為等號運算子。
尖括號>和<用作“大於”和“小於”運算子。當與“=”符號結合使用時,它們形成“>=”運算子表示“大於或等於”和“<=”運算子表示“小於或等於”比較。
最後,“!”字首的“=”符號(!=)用作不等號運算子。
示例2
以下示例顯示了所有關係運算符的使用。
#include <stdio.h> int main(){ int a = 21; int b = 10; int c ; printf("a: %d b: %d\n", a,b); if(a == b){ printf("Line 1 - a is equal to b\n" ); } else { printf("Line 1 - a is not equal to b\n" ); } if (a < b){ printf("Line 2 - a is less than b\n" ); } else { printf("Line 2 - a is not less than b\n" ); } if (a > b){ printf("Line 3 - a is greater than b\n" ); } else { printf("Line 3 - a is not greater than b \n\n" ); } /* Lets change value of a and b */ a = 5; b = 20; printf("a: %d b: %d\n", a,b); if (a <= b){ printf("Line 4 - a is either less than or equal to b\n" ); } if (b >= a){ printf("Line 5 - b is either greater than or equal to b\n" ); } if(a != b){ printf("Line 6 - a is not equal to b\n" ); } else { printf("Line 6 - a is equal to b\n" ); } return 0; }
輸出
執行此程式碼時,將產生以下輸出:
a: 21 b: 10 Line 1 - a is not equal to b Line 2 - a is not less than b Line 3 - a is greater than b a: 5 b: 20 Line 4 - a is either less than or equal to b Line 5 - b is either greater than or equal to b Line 6 - a is not equal to b
示例3
==運算子需要謹慎使用。請記住,“=”是C語言中的賦值運算子。如果錯誤地將其用作等號運算子,則會得到不正確的輸出,如下所示:
#include <stdio.h> int main(){ int a = 5; int b = 3; if (a = b){ printf("a is equal to b"); } else { printf("a is not equal to b"); } return 0; }
輸出
“b”的值被賦給“a”,該值非零,因此if表示式返回真。
a is equal to b
示例4
我們也可以將“char”型別作為所有關係運算符的運算元,因為“char”型別是“int”型別的子集。請看以下示例:
#include <stdio.h> int main(){ char a = 'B'; char b = 'd'; printf("a: %c b: %c\n", a,b); if(a == b){ printf("Line 1 - a is equal to b \n"); } else { printf("Line 1 - a is not equal to b \n"); } if (a < b){ printf("Line 2 - a is less than b \n"); } else { printf("Line 2 - a is not less than b \n"); } if (a > b) { printf("Line 3 - a is greater than b \n"); } else { printf("Line 3 - a is not greater than b \n"); } if(a != b) { printf("Line 4 - a is not equal to b \n"); } else { printf("Line 4 - a is equal to b \n"); } return 0; }
輸出
執行程式碼並檢查其輸出:
a: B b: d Line 1 - a is not equal to b Line 2 - a is less than b Line 3 - a is not greater than b Line 4 - a is not equal to b
關係運算符不能用於比較諸如陣列之類的二級型別或諸如結構體或聯合體之類的派生型別。
c_operators.htm
廣告