我已经完成了 LinkedIn C++ 评估并得到了以下问题:
执行此代码片段的结果是什么?
bool x=true, x=false;
if(~x || y) {
/*part A*/
}
else {
/*part B*/
}
我不知道答案是什么了,但我认为应该显示“B”,对吧?
我认为通过“~”,x 是倒置的(“按位非”),因此不再是“真”
但是当我运行代码时,我得到“A”:
代码:
#include <iostream>
int main()
{
bool x = true, y = false;
std::cout << "x: " << x << std::endl;
std::cout << "~x: " << ~x << std::endl;
if (~x || y) {
std::cout << "A" << std::endl;
}
else {
std::cout << "B" << std::endl;
}
return 0;
}
输出:
x: 1
~x: -2
A
谁可以给我解释一下这个?