このページから、Bitwise AND の演算子の優先順位が Logical OR よりも高いことがわかりました。ただし、次のプログラムでは予期しない出力が得られます。
#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
これは、論理 OR が最初に機能することを意味します。これは、ここで演算子の優先順位規則に違反していることを意味しますか?