【发布时间】:2019-09-06 21:36:01
【问题描述】:
这听起来可能是一个非常愚蠢的问题。但是这几天一直困扰着我。而且它不仅与 C++ 编程语言有关,因为我已经添加了它的标签。我的问题是这样的。在计算机科学中,布尔 (bool) 数据类型只有两个可能的值。 '对或错'。而且,在计算机科学中,1 为真,0 为假。那么为什么布尔值存在呢?为什么不使用一个只能返回两个可能值的整数,比如 1 或 0。
例如:
bool mindExplosion = true; // true!
int mindExplosion = 1; // true!!
// or we can '#define true 1' and it's the same right?
我错过了什么?
【问题讨论】:
-
抛开实际考虑,如果我正在阅读某人的代码并看到声明了
bool变量,这立即告诉我他们希望它只有两个可能的值。如果他们将其声明为int,那么现在我将不得不深入研究代码,然后才能意识到他们正在(错误地)将该变量用作某种布尔值。拥有这样的代码,并且只做它所说的,可以为其他程序员节省相当多的时间:) -
人们也可以问“如果我们有 int,为什么还要有
char类型?`。毕竟,字符编码是数字。 -
您可以指望
false为0。另一方面,true是not false,无论这意味着整数。例如 -1 是真的吗? 5是真的吗?那么,如果您期望1为真,但整数为 5,那么表达式是否为真? -
抑制了好奇心。我现在明白了。
-
仅供参考,
bool并不总是存在!早在过去,人们实际上确实使用整数作为布尔值。bool是后来添加的,它只是让事情变得更容易。