在C語(yǔ)言中,沒(méi)有bool這種類型,但是在C++中,把bool當(dāng)做一種基本的數(shù)據(jù)類型。
目前成都創(chuàng)新互聯(lián)公司已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、慶安網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
在C語(yǔ)言中,當(dāng)我們要表示真或假的時(shí)候,都是定義一個(gè)非bool類型來(lái)使用的。
在C++中,加入了布爾bool這種基礎(chǔ)的類型,用true和false來(lái)表示真或者假,也可以用非0值來(lái)表示真,用0來(lái)表示假。在C++中,雖然布爾類型只表示true和false,看起來(lái)好像可以用一個(gè)位來(lái)存儲(chǔ)布爾類型的變量,但其實(shí),布爾類型在C++中是占用一個(gè)字節(jié)的。
bool型變量返回值:
當(dāng)作為一個(gè)構(gòu)造函數(shù)(帶有運(yùn)算符 new)調(diào)用時(shí),Boolean() 將把它的參數(shù)轉(zhuǎn)換成一個(gè)布爾值,并且返回一個(gè)包含該值的 Boolean 對(duì)象。
如果作為一個(gè)函數(shù)(不帶有運(yùn)算符 new)調(diào)用時(shí),Boolean() 只將把它的參數(shù)轉(zhuǎn)換成一個(gè)原始的布爾值,并且返回這個(gè)值。
bool表示布爾型變量,也就是邏輯型變量的定義符,可用于邏輯表達(dá)式,也就是“或”“與”“非”之類的邏輯運(yùn)算和大于小于之類的關(guān)系運(yùn)算。bool取值false和true,0為false,非0為true。(例如-1和2都是true)。如果數(shù)個(gè)bool對(duì)象列在一起,可能會(huì)各占一個(gè)Byte,這取決于編譯器。
bool型變量返回值:
當(dāng)作為一個(gè)構(gòu)造函數(shù)(帶有運(yùn)算符 new)調(diào)用時(shí),Boolean() 將把它的參數(shù)轉(zhuǎn)換成一個(gè)布爾值,并且返回一個(gè)包含該值的 Boolean 對(duì)象。
如果作為一個(gè)函數(shù)(不帶有運(yùn)算符 new)調(diào)用時(shí),Boolean() 只將把它的參數(shù)轉(zhuǎn)換成一個(gè)原始的布爾值,并且返回這個(gè)值。
bool表示布爾型變量,也就是邏輯型變量的定義符,以英國(guó)數(shù)學(xué)家、布爾代數(shù)的奠基人喬治·布爾(George Boole)命名。
bool類似于float,double等,只不過(guò)float定義浮點(diǎn)型,double定義雙精度浮點(diǎn)型。 在objective-c中提供了相似的類型BOOL,它具有YES值和NO值;在java中則對(duì)應(yīng)于boolean類型。
C99中提供了一個(gè)頭文件 stdbool.h 定義了bool代表_Bool,true代表1,false代表0。只要導(dǎo)入 stdbool.h ,就能非常方便的操作布爾類型了。
擴(kuò)展資料:
BOOL和bool區(qū)別:
1、類型不同
bool為布爾型用作邏輯判斷
BOOL在windef.htypedef int BOOL;
在wtypes.htypedef long BOOL;
2、長(zhǎng)度不同
bool只有一個(gè)字節(jié)
BOOL長(zhǎng)度視實(shí)際環(huán)境來(lái)定,一般可認(rèn)為是4個(gè)字節(jié)
3、取值不同
bool取值false和true,0為false,非0為true。(例如-1和2都是true)。
如果數(shù)個(gè)bool對(duì)象列在一起,可能會(huì)各占一個(gè)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á)式,也就是“或”“與”“非”之類的邏輯運(yùn)算和大于小于之類的關(guān)系運(yùn)算,邏輯表達(dá)式運(yùn)算結(jié)果為真或?yàn)榧佟?/p>
bool可用于定義函數(shù)類型為布爾型,函數(shù)里可以有 return TRUE; return FALSE 之類的語(yǔ)句。
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ù)運(yùn)算時(shí)會(huì)轉(zhuǎn)為int值1,減1后結(jié)果為0,賦值給b時(shí)會(huì)轉(zhuǎn)換為bool值false)
if(b)
cout "error!" endl;
return 0;
}
運(yùn)行結(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(只是簡(jiǎn)單的進(jìn)行算術(shù)運(yùn)算,結(jié)果為1,回存)
if(b) // b非0,條件為真
cout "error!" endl;
return 0;
}
運(yùn)行結(jié)果:OK!
error!
可以在定義b時(shí)改成 bool b=0;看看運(yùn)行結(jié)果。
參考資料來(lái)源:百度百科-BOOL