
- 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語言中的布林值
與int、char或float型別不同,ANSI C標準沒有內建或主要的布林型別。布林值或bool資料通常指的是可以儲存兩個二進位制值之一的資料:true或false(或yes/no,on/off等)。即使C語言中沒有bool型別,您也可以藉助enum型別實現布林值的特性。
符合C99標準或更高版本的C編譯器的新版本支援bool型別,該型別已在標頭檔案stdbool.h中定義。
使用enum在C語言中實現布林型別
enum型別將使用者定義的識別符號賦給整型常量。我們可以定義一個列舉型別,其中true和false作為識別符號,其值為1和0。
示例
1或任何其他非0數字表示true,而0表示false。
#include <stdio.h> int main (){ enum bool {false, true}; enum bool x = true; enum bool y = false; printf ("%d\n", x); printf ("%d\n", y); }
輸出
執行程式碼並檢查其輸出 -
1 0
將typedef enum 定義為BOOL
為了使其更簡潔,我們可以使用typedef關鍵字將enum bool稱為BOOL。
示例1
請看下面的例子 -
#include <stdio.h> int main(){ typedef enum {false, true} BOOL; BOOL x = true; BOOL y = false; printf ("%d\n", x); printf ("%d\n", y); }
在這裡,您也將獲得相同的輸出 -
輸出
1 0
示例2
我們甚至可以在決策或迴圈語句中使用列舉常量 -
#include <stdio.h> int main(){ typedef enum {false, true} BOOL; int i = 0; while(true){ i++; printf("%d\n", i); if(i >= 5) break; } return 0; }
輸出
執行此程式碼時,將產生以下輸出 -
1 2 3 4 5
使用#define的布林值
#define預處理器指令用於定義常量。我們可以用它來定義布林常量,FALSE為0,TRUE為1。
示例
請看下面的例子 -
#include <stdio.h> #define FALSE 0 #define TRUE 1 int main(){ printf("False: %d \n True: %d", FALSE, TRUE); return 0; }
輸出
執行程式碼並檢查其輸出 -
False: 0 True: 1
stdbool.h中的布林型別
C語言的C99標準引入了stdbool.h標頭檔案。它包含bool型別的定義,實際上是_bool型別的typedef別名。它還定義了宏true(展開為1)和false(展開為0)。
示例1
我們可以按如下方式使用bool型別 -
#include <stdio.h> #include <stdbool.h> int main(){ bool a = true; bool b = false; printf("True: %d\n", a); printf("False: %d", b); return 0; }
輸出
執行此程式碼後,您將獲得以下輸出 -
True: 1 False: 0
示例2
我們也可以在邏輯表示式中使用bool型別變數,如下例所示 -
#include <stdio.h> #include <stdbool.h> int main(){ bool x; x = 10 > 5; if(x) printf("x is True\n"); else printf("x is False\n"); bool y; int marks = 40; y = marks > 50; if(y) printf("Result: Pass\n"); else printf("Result: Fail\n"); }
輸出
執行程式碼並檢查其輸出 -
x is True Result: Fail
示例3
讓我們用bool變數實現一個while迴圈 -
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> int main(void){ bool loop = true; int i = 0; while(loop){ i++; printf("i: %d \n", i); if (i >= 5) loop = false; } printf("Loop stopped!\n"); return EXIT_SUCCESS; }
輸出
執行此程式碼時,將產生以下輸出 -
i: 1 i: 2 i: 3 i: 4 i: 5 Loop stopped!
廣告