【发布时间】:2020-03-28 19:47:14
【问题描述】:
您好,在学习 C++ 几个月后,我决定看一些 CPA 练习题,第一个问题让我对这段代码感到震惊。
#include <iostream>
using namespace std;
int main(void) {
int i = 1, j = 2;
if(i > j && j > i)
i++;
if(i > j || j > i)
j++;
if(i | j)
i++;
if(i & j)
j++;
cout << i * j << endl;
return 0;
}
我不明白第三个和第四个 if 语句在寻找什么,因为我以前从未见过这种语法。谢谢!
【问题讨论】:
-
第三个是按位使用
or。第四种是按位使用and。请参阅C++ operators 的 位运算符 部分 -
meaning of & in C++ 的一半重复。
-
手动进行位运算。如果结果为零,则将条件视为
false。如果结果非零,则条件被视为真。 -
不是“在 C++ 中为布尔值使用按位运算符”的副本,因为在这种情况下操作数是
int
标签: c++ if-statement bitwise-operators bitwise-and bitwise-or