我们都知道&& (双和)和条件。 单个和内部发生的条件如何执行。
if(true & bSuccess)
{
}
答案 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在两种情况下都是相同的,因此结果是正确的。
希望有所帮助。