在c語言標準(c89)沒有定義布林型別,所以c語言判斷真假時以0為假,非0為真。所以我們通常使用邏輯變數的做法:
//但這種做法不直觀,而且沒有明確flag一定是布林值。所以我們又借助c語言的巨集定義:定義乙個int型別變數,當變數值為0時表示false,值為1時表示true
int flag;
flag = 0;
//......
flag = 1;
if( flag )
//這種方法雖然直觀,但依然是換湯不換藥,變數flag在編譯器看來依然是int型別。巨集定義布林型別
#define bool int
#define true 1
#define false 0
//定義乙個布林變數
bool flag = false;
新版本總會改進一些不好的地方,所以在最新的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還提供了乙個標...