布尔类型
布尔类型(Boolean Type)是用于存储“真”或“假”的变量。它一般用于存储数学上一个命题的真假。所以它的值只能为 true
或者 false
,其中 true
表示真, false
表示假。 true
和 false
都是 C++ 关键字。
Boolean 一词是为了纪念英国数学家 George Boole。
布尔类型的类型说明符是 bool
。比如
声明并定义了布尔类型变量 a
,它的初始化值为 true
。
我们之前在 if
和 while
的条件中使用的就是布尔类型的结果。比如,条件 3 > 7
的结果就是布尔型变量 false
,因为这是一个假命题;而条件 6 != 4
的结果就是布尔型变量 true
。因此你可以直接把布尔型变量放入 if
或 while
的条件中。如:
这里说的“条件”和“命题”都是形象的称呼,它们的标准说法是“表达式”。参见运算成分章节。
任何其它算术类型都可以赋值给布尔型变量。一般地,若该值为 0
,则赋值结果为 false
;若该值非 0
,则赋值结果为 true
。反过来,布尔型变量也可以赋值给其它算术类型。若布尔型变量为 true
,则赋值结果为 1
;若布尔型变量为 false
,则赋值结果为 0
。例如以下程序:
的编译运行结果为:
true
false
true
true
布尔类型和其它算术类型相互赋值的时候发生了隐式转换。关于隐式转换的更多内容,参阅运算成分章节。
存储细节
C++ 标准没有规定布尔型变量的存储细节。但是一般地,布尔型使用 1 字节(8 位)存储,因为 1 字节是计算机能够操作的最小存储单位,相对是最节约空间的。当存储 true
时,该字节将存储为 ;当存储 false
时,该字节将存储为 。
尽管 1 位是最小的存储单位,但是计算机所能操作的最小单位是 1 字节。请注意区分这两者之间的不同。
练习
- 编写一个程序:输入 5 个数 ,如果其中存在一个大于等于 10 的数就输出
NO
;如果所有数都小于 10 就输出YES
。