布尔型(真和假)

来源:互联网 发布:mac win8截图快捷键 编辑:程序博客网 时间:2024/04/27 19:15

 可以将每个表达式的值视为真或假。如果表达式的值为0,则返回false,否则返回true。(这种约定是从C继承来的,编写低级软件(如操作系统和实时控制软件时)时经常会使用这种约定,这种用法可能成为检测掩码或变量的所有位是否为0的简便方式)

在早期的C++版本中,真和假都用整数来表示;新的ANSI标准引入了bool类型。bool类型只有两个可能的取值:false或true。

所有关系运算符都返回一个bool值,即true或false。

 

考虑下面的例子:

if ((x = a + b)==10)

即使a和b的和不是10,该表达式也会返回一个值。另外,无论什么情况下,a与b的和都将被赋给x。见下列测试代码:

在C++中,0被解释为代表假,其他值被解释为真。表达式总是有一个值,许多程序员在if语句中利用这一特点。例如下面的语句的含义为,如果x不为0,将其设置为0:

if (x)                        //if x is true (nonezero)

      x = 0;

这有点玩技巧,如果写成下面将更清楚:

if (x != 0)               // if x is not zero

      x = 0;             

这两种写法都合法,但后者更清楚。良好的编程习惯是,用前一种方法来判断逻辑真与假,而不使用它来判断非0值。

下面的两条语句也是等效的:

if (!x)                  //if x is false (zero)

if (x == 0)           //if x is zero 如果要判断的是x的数学值而不是逻辑状态,这条语句更清晰

 

考虑下面的代码


原创粉丝点击