[从C到C++] 1.3 C++布尔类型(bool)

布尔类型(bool)是C++新增的一种基本数据类型。在标准的C语言中并未定义bool类型,如果需要使用bool类型,程序员可以通过宏定义来自定义一个bool类型,定义语句如下:

#define bool int
#define false 0
#define true 1

也就是将int型定义为bool型,将int型的0和1两个值分别定义为bool类型的两个值true和false。

但是在C++中则不需要这么麻烦,C++中对bool类型已经做出了定义。

bool类型是C++语言基本数据结构之一,在80x86处理器上编译器gcc 4.8.1和Visual C++ 2012给bool类型变量分配1个字节长度。bool类型取值范围仅有两个值:true和false。在做逻辑运算时,默认非零即为ture。

定义bool类型变量也与其他基本数据类型变量的定义类似,如下所示:

bool flag = true;
时间: 2024-08-22 14:35:07

[从C到C++] 1.3 C++布尔类型(bool)的相关文章

C#的布尔类型

布尔类型是用来表示"真"和"假"这两个概念的.这虽然看起来很简单,但实际应用非常广泛.我们都知道,计算机实际上就是用二进制来表示各种数据的,即不管何种数据,在计算机内部都是采用二进制方式处理和存储的.布尔类型表示的逻辑变量只有两种取值:"真"和"假".在C#中,分别采用true和false两个值来表示. 注意:在C和C++中,用0来表示"假",其它任何非0的式子都表示"真".这种不正规的

Delphi中的布尔类型

Delphi中预定义的布尔类型有四种:Boolean ,ByteBool,WordBool,LongBool.其中,Boolean 类型是首选布尔类型,其余三种是为其它编程语言和Windows 环境提供兼容性支持.这些布尔类型在使用上大同小异,但如果混淆使用将可能会有意外结果. 现做简单辨析供大家参考. 一.从资源占用的角度进行比较 一项Boolean 类型的数据占用 1字节的内存: 一项ByteBool类型的数据占用 1字节的内存: 一项WordBool类型的数据占用 2字节的内存: 一项Lo

do while-在do-while循环语句中关于定义,判断布尔类型的问题

问题描述 在do-while循环语句中关于定义,判断布尔类型的问题 当定义boolean flag=false或者boolean flag=true时,该程序的运行结果是一样的.while(flag)或者while(!flag)与定义的flag没有关系吗?while(flag)的含义永远是falg=true时继续,而while(!flag)的含义永远是!falg=true时继续吗? public class Test { public static void main(String[]args)

java-小白求教!布尔类型的数组,所有元素做或运算,用Java应该怎么写啊?

问题描述 小白求教!布尔类型的数组,所有元素做或运算,用Java应该怎么写啊? 小白求教!布尔类型的数组,所有元素做或运算,用JAVA应该怎么写啊? 解决方案 public static void main(String[] args) { boolean[] booleans = {false,true,false,false,true,false}; boolean res = false ; for(boolean b : booleans){ res |= b; System.out.p

字符统计-在产生布尔类型的表达式中对‘c’赋值如何解决

问题描述 在产生布尔类型的表达式中对'c'赋值如何解决 /* 2.单词计数函数功能:统计输入的单词,然后输出,输出格式:X行,X单词,X个字符(字符包括输入的换行符) */ #include #include ""head.h"" Int32_t main( Int32_t argc const Int32_t* argv[] ) { Int32_t numline = 1numword = 1numchar = 0c = 0; [b] while ((c = ge

select-在应使用条件的上下文(在 ';' 附近)中指定了非布尔类型的表达式。这个问题如何解决?

问题描述 在应使用条件的上下文(在 ';' 附近)中指定了非布尔类型的表达式.这个问题如何解决? 行 46: string sqlstr = "select Place=(SELECT COUNT(DISTINCT totalScore) FROM T_TestMark WHERE a.totalScore >= a.totalScore) as 名次,b.userID as 用户名, a.totalScore as 成绩 FROM T_TestMark AS a INNER JOIN T

select- 在应使用条件的上下文(在 'then' 附近)中指定了非布尔类型的表达式。

问题描述 在应使用条件的上下文(在 'then' 附近)中指定了非布尔类型的表达式. 消息 4145,级别 15,状态 1,第 2 行 在应使用条件的上下文(在 'then' 附近)中指定了非布尔类型的表达式. select case when (ABS (Ultra_oil) > 100 ) and (Ultra_oil > 0 )then 80+(Ultra_oil-100)*1 when (-(80+(ABS(Ultra_oil)-100)*1)) then Ultra_oil*0.8

Java的布尔类型基本介绍_java

Java 有一种表示逻辑值的简单类型,称为布尔型.它的值只能是真或假这两个值中的一个.它是所有的诸如a下面的程序说明了布尔类型的使用: // Demonstrate boolean values. class BoolTest { public static void main(String args[]) { boolean b; b = false; System.out.println("b is " + b); b = true; System.out.println(&quo

Elasticsearch查询——布尔查询Bool Query

Elasticsearch在2.x版本的时候把filter查询给摘掉了,因此在query dsl里面已经找不到filter query了.其实es并没有完全抛弃filter query,而是它的设计与之前的query太重复了.因此直接给转移到了bool查询中. Bool查询现在包括四种子句,must,filter,should,must_not. 为什么filter会快? 看上面的流程图就能很明显的看到,filter与query还是有很大的区别的. 比如,query的时候,会先比较查询条件,然后