bool就是布爾的意思,布爾值的返回值只有真(true)和假(false),多用于判斷。
創(chuàng)新互聯(lián)公司長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為庫爾勒企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站制作,庫爾勒網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
在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表示“假”。
C語言沒有BOOL類型變量
boolean類型是C++所獨有的
由于使用BOOL類型可以使代碼更具有可讀性,很多編程者都在C中自己定義了類似的應(yīng)用,一般方法有兩種:
1、采用宏定義方式(windef.h中就是用的這種方式)
typedef int BOOL ;
#define true 0
#define false 1
2、采用枚舉型變量方式(這種方式更象C++的boolean類型)
typedef enum { true=0, false} BOOL;
在C語言中,沒有bool這種類型,但是在C++中,把bool當做一種基本的數(shù)據(jù)類型。
在C語言中,當我們要表示真或假的時候,都是定義一個非bool類型來使用的。
在C++中,加入了布爾bool這種基礎(chǔ)的類型,用true和false來表示真或者假,也可以用非0值來表示真,用0來表示假。在C++中,雖然布爾類型只表示true和false,看起來好像可以用一個位來存儲布爾類型的變量,但其實,布爾類型在C++中是占用一個字節(jié)的。
bool型變量返回值:
當作為一個構(gòu)造函數(shù)(帶有運算符 new)調(diào)用時,Boolean() 將把它的參數(shù)轉(zhuǎn)換成一個布爾值,并且返回一個包含該值的 Boolean 對象。
如果作為一個函數(shù)(不帶有運算符 new)調(diào)用時,Boolean() 只將把它的參數(shù)轉(zhuǎn)換成一個原始的布爾值,并且返回這個值。
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)境來定,一般可認為是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)。
布爾型變量可用于邏輯表達式,也就是“或”“與”“非”之類的邏輯運算和大于小于之類的關(guān)系運算,邏輯表達式運算結(jié)果為真或為假。
bool可用于定義函數(shù)類型為布爾型,函數(shù)里可以有 return TRUE; return FALSE 之類的語句。
if (邏輯表達式)
{
如果是 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此處不進行類型轉(zhuǎn)換,b存放的就是2)。
if(b)
cout "ok!" endl;
b=b-1; //執(zhí)行此行后,b=1(只是簡單的進行算術(shù)運算,結(jié)果為1,回存)
if(b) // b非0,條件為真
cout "error!" endl;
return 0;
}
運行結(jié)果:OK!
error!
可以在定義b時改成 bool b=0;看看運行結(jié)果。
參考資料來源:百度百科-BOOL
bool表示布爾型變量,也就是邏輯型變量的定義符,可用于邏輯表達式,也就是“或”“與”“非”之類的邏輯運算和大于小于之類的關(guān)系運算。bool取值false和true,0為false,非0為true。(例如-1和2都是true)。如果數(shù)個bool對象列在一起,可能會各占一個Byte,這取決于編譯器。
bool型變量返回值:
當作為一個構(gòu)造函數(shù)(帶有運算符 new)調(diào)用時,Boolean() 將把它的參數(shù)轉(zhuǎn)換成一個布爾值,并且返回一個包含該值的 Boolean 對象。
如果作為一個函數(shù)(不帶有運算符 new)調(diào)用時,Boolean() 只將把它的參數(shù)轉(zhuǎn)換成一個原始的布爾值,并且返回這個值。
C語言中,本身沒有bool(布爾型變量)。
bool是布爾型變量,也就是邏輯型變量的定義符,類似于float,double等,只不過float定義浮點型,double定義雙精度浮點型。
布爾型變量的值只有?真?(true)?和假?(false)。
布爾型變量可用于邏輯表達式,也就是“或”“與”“非”之類的邏輯運算和大于小于之類的關(guān)系運算。
建議:最好別用bool,bool變量可用int代替。
擴展資料
BOOL和bool的區(qū)別:
1、類型不同
BOOL為int型
bool為布爾型
2、長度不同
bool只有一個字節(jié)
BOOL長度視實際環(huán)境來定,一般可認為是4個字節(jié)
3、取值不同
bool取值false和true,是0和1的區(qū)別
如果數(shù)個bool對象列在一起,可能會各占一個bit,這取決于編譯器。
BOOL是微軟定義的typedef?int?BOOL(在windef.h中)。與bool不同,它是一個三值邏輯,TRUE/FALSE/ERROR,返回值為大于0的整數(shù)時為TRUE,返回值為0時候,為FALSE,返回值為-1時為ERROR。
參考資料來源:
百度百科——BOOL