c語言中的布林型別

2021-07-09 06:52:43 字數 898 閱讀 4323

在c語言標準(c89)沒有定義布林型別,所以c語言判斷真假時以0為假,非0為真。所以我們通常使用邏輯變數的做法:

//

定義乙個int型別變數,當變數值為0時表示false,值為1時表示true

int flag;

flag = 0;

//......

flag = 1;

if( flag )

但這種做法不直觀,而且沒有明確flag一定是布林值。所以我們又借助c語言的巨集定義:

//

巨集定義布林型別

#define bool int

#define true 1

#define false 0

//定義乙個布林變數

bool flag = false;

這種方法雖然直觀,但依然是換湯不換藥,變數flag在編譯器看來依然是int型別。

新版本總會改進一些不好的地方,所以在最新的c語言標準(c99)解決了布林型別的問題。c99提供了_bool 型,所以布林型別可以宣告為 _bool flag。

_bool依然仍是整數型別,但與一般整型不同的是,_bool變數只能賦值為0或1,非0的值都會被儲存為1。

c99還提供了乙個標頭檔案 定義了bool代表_bool,true代表1,false代表0。只要匯入 stdbool.h ,就能非常方便的操作布林型別了。

//

匯入 stdbool.h 來使用布林型別

#include #include //

計算n!,n的值在main中定義

int main(void)

}printf ("

%d的疊乘值為 %d \n

", n, sum);

return

0;}

C語言中的布林(bool)型別

想必很多初學者都曾遇到過在c程式中編寫bool型別變數結果編譯報錯的情況吧?我們知道在c 裡有專門的bool型別,用來表示真或假。但是在c語言裡沒有這樣的型別 我一直這麼認為 表示式的值0為假,非0為真。所以條件判斷語句非常靈活,甚至乙個指標型別都可以是條件表示式。為了使程式更清晰,我們常常會給出如...

C語言的布林型別

c語言的布林型別 在c語言標準 c89 沒有定義布林型別,所以c語言判斷真假時以0為假,非0為真。所以我們通常使用邏輯變數的做法 定義乙個int型別變數,當變數值為0時表示false,值為1時表示true int flag flag 0 flag 1 if flag 但這種做法不直觀,而且沒有明確f...

C語言之布林型別

c 語言標準 c89 沒有定義布林型別,所以 c 語言判斷真假時以0為假,非0為真但這種做法不直觀,所以我們可以借助 c 語言的巨集定義 c 語言標準 c99 提供了 bool型,bool仍是整數型別,但與一般整型不同的是,bool變數只能賦值為0或1,非 0的值都會被儲存為1,c99還提供了乙個標...