如果条件与单和(&)

时间:2011-11-17 12:41:20

标签: c++

我们都知道&& (双和)和条件。 单个和内部发生的条件如何执行。

 if(true & bSuccess)
{
}

2 个答案:

答案 0 :(得分:13)

true & bSuccess

在此表达式中,两个操作数都被提升为int,然后评估&。如果bSuccess为true,您将获得1 & 1 1(或true)。如果bSuccess为false,您将获得1 & 0 0(或false

因此,如果布尔值&&&将始终产生相同的结果,但它们并不完全等效,因为&将始终评估其参数和{{如果第一个参数为假,则不会评估其第二个参数。

示例:

&&

答案 1 :(得分:7)

在你的情况下,因为bSuccess是bool然后

if(true & bSuccess) 与<{1}}

完全相同

但是你用过这个:

if(true && bSuccess)

short i = 3; short k = 1; 结果将是真的:

if(i & k)

&安培;对单个位进行操作,这里位1在两种情况下都是相同的,因此结果是正确的。

希望有所帮助。