⑴ c語言中整型與布爾類型的轉換
0或1
c++中布爾變數的值true或false有1或0一表示,
任何非0的數都表示true,只有0表示false。
所以將任何一個非0的整型變數賦給布爾變數都會得到true(即1)
只有把值為0的整型變數賦給布爾變數時會得到false(即0),
再賦值回來給整型變數就得到0或1
⑵ c語言bool什麼意思
bool表示布爾型變數,也就是邏輯型變數的定義符,以英國數學家、布爾代數的奠基人喬治·布爾(George Boole)命名。
bool類似於float,double等,只不過float定義浮點型,double定義雙精度浮點型。 在objective-c中提供了相似的類型BOOL,它具有YES值和NO值;在java中則對應於boolean類型。
C99中提供了一個頭文件 <stdbool.h> 定義了bool代表_Bool,true代表1,false代表0。只要導入 stdbool.h ,就能非常方便的操作布爾類型了。
(2)c語言布爾類型的格式化擴展閱讀:
BOOL和bool區別:
1、類型不同
bool為布爾型用作邏輯判斷
BOOL在<windef.h>typedef int BOOL;
在<wtypes.h>typedef long BOOL;
2、長度不同
bool只有一個位元組
BOOL長度視實際環境來定,一般可認為是4個位元組
3、取值不同
bool取值false和true,0為false,非0為true。(例如-1和2都是true)。
如果數個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)。
布爾型變數可用於邏輯表達式,也就是「或」「與」「非」之類的邏輯運算和大於小於之類的關系運算,邏輯表達式運算結果為真或為假。
bool可用於定義函數類型為布爾型,函數里可以有 return TRUE; return FALSE 之類的語句。
if (邏輯表達式)
{
如果是 true 執行這里;
}
else
{
如果是 false 執行這里;
};
三、關於bool的小例子
(1)
#include<iostream>
using namespace std;
int main()
{
bool b =2; //執行此行後,b=true(整型2轉為bool型後結果為true)
if(b)
cout << "ok!" << endl;
b = b-1; //執行此行後,b=false(bool型數據true參與算術運算時會轉為int值1,減1後結果為0,賦值給b時會轉換為bool值false)
if(b)
cout << "error!" <<endl;
return 0;
}
運行結果:OK!
(2)
#include<iostream>
#include<windef.h>
using namespace std;
int main()
{
BOOL b =2; //執行此行後,b=2(BOOL為int此處不進行類型轉換,b存放的就是2)。
if(b)
cout << "ok!" << endl;
b=b-1; //執行此行後,b=1(只是簡單的進行算術運算,結果為1,回存)
if(b) // b非0,條件為真
cout << "error!" <<endl;
return 0;
}
運行結果:OK!
error!
可以在定義b時改成 bool b=0;看看運行結果。
參考資料來源:網路-BOOL
⑶ C語言怎麼輸入bool型變數
C語言中,本身沒有bool(布爾型變數)。
bool是布爾型變數,也就是邏輯型變數的定義符,類似於float,double等,只不過float定義浮點型,double定義雙精度浮點型。
布爾型變數的值只有真(true)和假(false)。
布爾型變數可用於邏輯表達式,也就是「或」「與」「非」之類的邏輯運算和大於小於之類的關系運算。
建議:最好別用bool,bool變數可用int代替。
(3)c語言布爾類型的格式化擴展閱讀
BOOL和bool的區別:
1、類型不同
BOOL為int型
bool為布爾型
2、長度不同
bool只有一個位元組
BOOL長度視實際環境來定,一般可認為是4個位元組
3、取值不同
bool取值false和true,是0和1的區別
如果數個bool對象列在一起,可能會各佔一個bit,這取決於編譯器。
BOOL是微軟定義的typedefintBOOL(在windef.h中)。與bool不同,它是一個三值邏輯,TRUE/FALSE/ERROR,返回值為大於0的整數時為TRUE,返回值為0時候,為FALSE,返回值為-1時為ERROR。
⑷ C語言:要輸出一個BOOL型變數(不轉換直接輸出)該用什麼符號
BOOL是微軟定義的typedefintBOOL,可見BOOL只是int(4位元組int)的別名,並非布爾類型;它的定義在頭文件windows.h中。所以在C語言中可以用%d直接控制輸出,在C++中可用cout <<直接輸出。以下代碼可以佐證:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include<iostream>
#include"windows.h"//BOOL定義在這個頭文件中
usingnamespacestd;
intmain(intargc,char*argv[]){
BOOLx=1234567890;
cout<<"Usethe'cout<<':x="<<x<<endl;//使用C++輸出流
printf("Usethe'printf':x=%d ",x);//使用庫函數printf
return0;
}
輸出結果為:
⑸ 在C語言中如何使用bool類型
1.添加頭文件#include "stdio.h"和#include "windows.h"。
代碼清單:
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
void main()
{
bool judge=false;
printf("%d
",judge);
}
⑹ C語言關於布爾型的問題
類型不匹配!沒有對應的bool類型的格式控制符。
應該這么寫if(isLeapYear(year)) printf("true");
else printf("false");
⑺ C語言中布爾類型如何列印為true或者false
在c語言中,布爾類型是以1或者0來分別表示true或者false。布爾類型是個宏定義,一般是這樣定義的:
#define
bool
int
#define
true
1
#define
false
0
所以你要顯示布爾類型,是不會以字元串的方式來顯示單詞表示的布爾的值,而只會顯示1或0,若要顯示true和false就要自己來處理,比如下面代碼:
bool
b=true;
if(b)
printf("true");
else
printf("false");
⑻ C語言中布爾類型如何列印為true或者false
#include <stdio.h>
void main()
{
bool b = true;
printf("%d ",b);
bool c = false;
printf("%d ",c);
}
(8)c語言布爾類型的格式化擴展閱讀:
布爾數組中存放的是布爾值(元素),布爾值只有true 和false兩種結果,其中,常量false可以理解為和int常量0等價,常量true可以理解為int常量1等價,在計算機中,實際上非0的int值都認為是true。
正因為布爾數組的這種特性,使得其在有些程序中進行使用可以起到優化的作用,甚至是事半功倍的效果。比如在搜索中就經常用到,可以用布爾數組區分那些經過處理的和沒有經過處理的數據,避免了一些不必要的重復。
⑼ C語言中,如何定義一個布爾型變數
C語言中並沒有bool類型變數。這是C++中新增的系統類型。
要在C語言中使用bool類型,可以使用自定義的方式。
1 使用整型做bool類型。
typedef int bool;
或
typedef unsigned char bool;
只要是整型,都可以當做bool使用。
2 使用枚舉類型做bool類型。
typedef enum
{
false,
true
}bool;
實際應用中,枚舉類型較為普遍。