
- 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語言 - return 語句
- 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”視為假,將任何非零數字視為真,因此邏輯運算子的任何運算元都將轉換為布林資料。
下表顯示了C語言中的邏輯運算子:
運算子 | 描述 | 示例 |
---|---|---|
&& | 稱為邏輯與運算子。如果兩個運算元均非零,則條件為真。 | (A && B) |
|| | 稱為邏輯或運算子。如果兩個運算元中的任何一個非零,則條件為真。 | (A || B) |
! | 稱為邏輯非運算子。它用於反轉其運算元的邏輯狀態。如果一個條件為真,則邏輯非運算子將使其為假。 | !(A) |
邏輯運算子的結果遵循布林代數的原理。邏輯運算子遵循以下真值表。
邏輯與(&&)運算子
C語言中的&&運算子充當邏輯與運算子。它具有以下真值表:
a | b | a&&b |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
上述真值表顯示,只有當兩個運算元都為真時,&& 的結果才為真。
邏輯或(||)運算子
C語言使用雙豎線符號 (||) 作為邏輯或運算子。它具有以下真值表:
a | b | a||b |
---|---|---|
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
上述真值表顯示,當任何一個運算元為真時,|| 運算子的結果為真,當兩個運算元都為假時,結果為假。
邏輯非(!)運算子
邏輯非! 運算子否定布林運算元的值。真變為假,假變為真。以下是它的真值表:
A | !a |
---|---|
真 | 假 |
假 | 真 |
與其他兩個邏輯運算子&& 和 ||不同,邏輯非運算子! 是一元運算子。
示例1
以下示例顯示了在C語言中使用邏輯運算子:
#include <stdio.h> int main(){ int a = 5; int b = 20; if (a && b){ printf("Line 1 - Condition is true\n" ); } if (a || b){ printf("Line 2 - Condition is true\n" ); } /* lets change the value of a and b */ a = 0; b = 10; if (a && b){ printf("Line 3 - Condition is true\n" ); } else { printf("Line 3 - Condition is not true\n" ); } if (!(a && b)){ printf("Line 4 - Condition is true\n" ); } return 0; }
輸出
執行程式碼並檢查其輸出:
Line 1 - Condition is true Line 2 - Condition is true Line 3 - Condition is not true Line 4 - Condition is true
示例2
在C語言中,char 型別是int 型別的子集。因此,邏輯運算子也可以與 char 型別一起使用。
#include <stdio.h> int main(){ char a = 'a'; char b = '\0'; // Null character if (a && b){ printf("Line 1 - Condition is true\n" ); } if (a || b){ printf("Line 2 - Condition is true\n" ); } return 0; }
輸出
執行程式碼並檢查其輸出:
Line 2 - Condition is true
邏輯運算子通常用於構建複合布林表示式。與關係運算符一起,邏輯運算子也用於C語言中的決策控制和迴圈語句。
示例3
以下示例顯示了C程式中的複合布林表示式:
#include <stdio.h> int main(){ int phy = 50; int maths = 60; if (phy < 50 || maths < 50){ printf("Result:Fail"); } else { printf("Result:Pass"); } return 0; }
輸出
Result:Pass
示例4
類似的邏輯也可以使用&& 運算子表示如下:
#include <stdio.h> int main(){ int phy = 50; int maths = 60; if (phy >= 50 && maths >= 50){ printf("Result: Pass"); } else { printf("Result: Fail"); } return 0; }
輸出
執行程式碼並檢查其輸出:
Result: Pass
示例5
以下C程式碼在while 迴圈中使用了非運算子:
#include <stdio.h> int main(){ int i = 0; while (!(i > 5)){ printf("i = %d\n", i); i++; } return 0; }
輸出
在上面的程式碼中,while 迴圈持續迭代,直到表示式“!(i > 5)”變為假,這將發生在“i”的值超過5時。
i = 0 i = 1 i = 2 i = 3 i = 4 i = 5
C語言有邏輯運算子的位運算子對應物,例如按位與(&)、按位或(|)和二進位制非或補(~)運算子。
c_operators.htm
廣告