从这个页面,我知道按位与的运算符优先级高于逻辑或。但是,以下程序给出了意外的输出。
#include<iostream>
using namespace std;
int main()
{
int a = 1;
int b = 2;
int c = 4;
if ( a++ || b++ & c++)
{
cout <<a <<" " << b <<" " << c <<" " <<endl;
}
return 0;
}
输出是
2 2 4
这意味着逻辑或首先起作用。这是否意味着这里违反了运算符优先规则?