如何在C或C++中进行平等比较?

Fra*_*ian 4 c c++

我只想用C或C++来表达:

b == c || b == d
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

b == (c || d)
Run Code Online (Sandbox Code Playgroud)

并获得相同的行为?

小智 5

第一个表达式 b == c || b == d,如果给你真正b是等于或者cd.

第二个表达式 b == (c || d)将仅检查是否b等于0或1,因为输出c || d是二进制.

考虑以下代码:

#include <iostream>
using namespace std;

int main() {
    int b=10,c=9,d=10;
    cout << (b ==c || b ==d )<<endl;
    cout<< ( b == ( c || d)) <<endl;
    d=11;
    cout << (b ==c || b ==d )<<endl;
    cout<< ( b == ( c || d)) <<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是

1
0
0
0
Run Code Online (Sandbox Code Playgroud)

现在您可以清楚地看到两个表达式都不相同.