逻辑与 && 和 按位与 &比较相似,计算规则都是两边都为true,结果才为true。
不过两者也有差别。
对于 C = A && B,如果A为false,那么C = false,B不计算。
对于 C = A & B,如果A为false,C 同样为false,但是B会计算,但不影响C的结果。
同样地,逻辑或 || 和 按位或 |也有一样的差别。

下面是一段测试代码。

bool Print()
{
    cout << "Print" << endl;
    return true;
}

int main(int argc, char **argv)
{
    cout << "=======================" << endl;
    bool result = false;
    result = result & Print();
    cout << result;
    return 0;
}

执行:

=======================
Print
0

If we change & to &&, program give us:

=======================
0

Categories: C plus plus

Leave a Reply

Your email address will not be published. Required fields are marked *