亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于布爾類型

C語言中不是也可以用if(flag)么????兩者有啥區別,再者C++中的flag不是說只有false和true嗎,怎么來了個flag=1???

正在回答

2 回答

0是false 非0即為true 這是我的理解 ? 后面是我看別人的博客 它們的區別:

c/c++ bool和BOOL的區別

1、類型不同

bool為布爾型

BOOL為int型

2、長度不同

bool只有一個字節

BOOL長度視實際環境來定,一般可認為是int類型的大小4個字節

3、取值不同

bool取值false和true,是0和1的區別

BOOL取值FALSE和TRUE,是0和非0的區別

4、

bool是標準C/C++數據類型,可取值true和false。單獨占一個字節,如果數個bool對象列在一起,可能會各占一個bit,這取決于編譯器。

BOOL是微軟定義的,用途是解決程序在C與C++中環境的差異,以下是FALSE/TRUE在windef.h的定義:

#ifndef FALSE

#define FALSE 0

#endif

#ifndef TRUE

#define TRUE 1

#endif 。與bool不同,它是一個三值邏輯,TRUE/FALSE/ERROR,返回值為>0的整數為TRUE,0為FALSE,-1為ERROR。Win32 API中很多返回值為BOOL的函數都是三值邏輯。比如GetMessage。

所以兩者不一樣的,只不過我們在使用中沒有這種感覺,因為C++會幫你做隱式轉換。

5、例子

bool x=3; //告警

bool x=1; //正確

BOOL x=3; //正確

BOOL x=3.3; //告警


1 回復 有任何疑惑可以回復我~

也就是說bool a=1;if(a){}等價于bool a=1;if(1){}等價于bool a=1;if(true){}

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之起航篇
  • 參與學習       290974    人
  • 解答問題       817    個

C++亮點盡在其中,本課程是在C語言基礎上的一個延伸,得以升華

進入課程

關于布爾類型

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號