C語言中沒有BOOL類型變量,它是C++獨有的。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、盤錦網(wǎng)站維護(hù)、網(wǎng)站推廣。
C語言并沒有徹底從語法上支持“真”和“假”,只是用0和非0來代表。這點在C++?中得到了改善,C++新增了bool類型(布爾類型),它一般占用1個字節(jié)長度。bool類型只有兩個取值,true和false:true表示“真”,false表示“假”。
工作原理
C++語言的程序因為要體現(xiàn)高性能,所以都是編譯型的。生成程序是指將源碼(C++語句)轉(zhuǎn)換成一個可以運行的應(yīng)用程序的過程。如果程序的編寫是正確的,那么通常只需按一個功能鍵,即可搞定這個過程。該過程實際上分成兩個步驟。
第一步是對程序進(jìn)行編譯,這需要用到編譯器,編譯器將C++語句轉(zhuǎn)換成機器碼,如果這個步驟成功,下一步就是對程序進(jìn)行鏈接,這需要用到鏈接器。鏈接器將編譯獲得機器碼與C++庫中的代碼進(jìn)行合并。
C++庫包含了執(zhí)行某些常見任務(wù)的函數(shù)。例如,一個C++庫中包含標(biāo)準(zhǔn)的平方根函數(shù)sqrt,所以不必親自計算平方根。C++庫中還包含一些子程序,它們把數(shù)據(jù)發(fā)送到顯示器,并知道如何讀寫硬盤上的數(shù)據(jù)文件。
在C語言中,沒有bool這種類型,但是在C++中,把bool當(dāng)做一種基本的數(shù)據(jù)類型。
在C語言中,當(dāng)我們要表示真或假的時候,都是定義一個非bool類型來使用的。
在C++中,加入了布爾bool這種基礎(chǔ)的類型,用true和false來表示真或者假,也可以用非0值來表示真,用0來表示假。在C++中,雖然布爾類型只表示true和false,看起來好像可以用一個位來存儲布爾類型的變量,但其實,布爾類型在C++中是占用一個字節(jié)的。
bool型變量返回值:
當(dāng)作為一個構(gòu)造函數(shù)(帶有運算符 new)調(diào)用時,Boolean() 將把它的參數(shù)轉(zhuǎn)換成一個布爾值,并且返回一個包含該值的 Boolean 對象。
如果作為一個函數(shù)(不帶有運算符 new)調(diào)用時,Boolean() 只將把它的參數(shù)轉(zhuǎn)換成一個原始的布爾值,并且返回這個值。
bool就是布爾的意思,布爾值的返回值只有真(true)和假(false),多用于判斷。
在C語言中,關(guān)系運算和邏輯運算的結(jié)果有兩種,真和假:0表示假,非0表示真。例如:
#include stdio.h
intmain(){
inta,b,flag;
scanf("%d %d", a, b);
flag = a b; //flag保存關(guān)系運算結(jié)果
printf("flag=%d\n",flag);
return0;
}
擴展資料
運行結(jié)果:
1020↙
flag=0
C語言并沒有徹底從語法上支持“真”和“假”,只是用0和非0來代表。這點在C++中得到了改善,C++新增了bool類型(布爾類型),它一般占用1個字節(jié)長度。bool類型只有兩個取值,true和false:true表示“真”,false表示“假”。
bool表示布爾型變量,也就是邏輯型變量的定義符,以英國數(shù)學(xué)家、布爾代數(shù)的奠基人喬治·布爾(George Boole)命名。
bool類似于float,double等,只不過float定義浮點型,double定義雙精度浮點型。 在objective-c中提供了相似的類型BOOL,它具有YES值和NO值;在java中則對應(yīng)于boolean類型。
C99中提供了一個頭文件 stdbool.h 定義了bool代表_Bool,true代表1,false代表0。只要導(dǎo)入 stdbool.h ,就能非常方便的操作布爾類型了。
擴展資料:
BOOL和bool區(qū)別:
1、類型不同
bool為布爾型用作邏輯判斷
BOOL在windef.htypedef int BOOL;
在wtypes.htypedef long BOOL;
2、長度不同
bool只有一個字節(jié)
BOOL長度視實際環(huán)境來定,一般可認(rèn)為是4個字節(jié)
3、取值不同
bool取值false和true,0為false,非0為true。(例如-1和2都是true)。
如果數(shù)個bool對象列在一起,可能會各占一個Byte,這取決于編譯器。
BOOL是微軟定義的typedef int BOOL(在windef.h中),0為FALSE,1為TRUE。(-1和2既不是TRUE也不是FALSE)。
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
布爾型變量bool
布爾型變量的值只有 真 (true) 和假 (false)。
布爾型變量可用于邏輯表達(dá)式,也就是“或”“與”“非”之類的邏輯運算和大于小于之類的關(guān)系運算,邏輯表達(dá)式運算結(jié)果為真或為假。
bool可用于定義函數(shù)類型為布爾型,函數(shù)里可以有 return TRUE; return FALSE 之類的語句。
if (邏輯表達(dá)式)
{
如果是 true 執(zhí)行這里;
}
else
{
如果是 false 執(zhí)行這里;
};
三、關(guān)于bool的小例子
(1)
#includeiostream
using namespace std;
int main()
{
bool b =2; //執(zhí)行此行后,b=true(整型2轉(zhuǎn)為bool型后結(jié)果為true)
if(b)
cout "ok!" endl;
b = b-1; //執(zhí)行此行后,b=false(bool型數(shù)據(jù)true參與算術(shù)運算時會轉(zhuǎn)為int值1,減1后結(jié)果為0,賦值給b時會轉(zhuǎn)換為bool值false)
if(b)
cout "error!" endl;
return 0;
}
運行結(jié)果:OK!
(2)
#includeiostream
#includewindef.h
using namespace std;
int main()
{
BOOL b =2; //執(zhí)行此行后,b=2(BOOL為int此處不進(jìn)行類型轉(zhuǎn)換,b存放的就是2)。
if(b)
cout "ok!" endl;
b=b-1; //執(zhí)行此行后,b=1(只是簡單的進(jìn)行算術(shù)運算,結(jié)果為1,回存)
if(b) // b非0,條件為真
cout "error!" endl;
return 0;
}
運行結(jié)果:OK!
error!
可以在定義b時改成 bool b=0;看看運行結(jié)果。
參考資料來源:百度百科-BOOL