首页 > 解决方案 > 关于逻辑 AND 运算符

问题描述

int a=8, b=10,c=2,d;
d= ++a && ++b || ++b; 

在上面的代码中,我怎么知道(++a)(++b)真还是假。我知道 true 是 1 而 false 是 0。但我不明白如何确定这些表达式是 true 还是 false 。请帮忙。

标签: c

解决方案


0为假,任何非零值都为真。所以你只需要确定++a和是否++b为零。

由于ais 最初是8++ais 9,它是非零的,所以它是真的。

由于bis 最初是10++bis 11,它是非零的,所以它是真的。

9 && 11为真,因为两个操作数都为真。

||仅当第一个操作数为假时才计算第二个操作数。所以第二个++bie 从未执行过。的true || anything值为true

因此,d将设置为 true,即1.


推荐阅读