1

このページから、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 が最初に機能することを意味します。これは、ここで演算子の優先順位規則に違反していることを意味しますか?

4

3 に答える 3

1

このリンクはあなたを助けることができます:

http://en.cppreference.com/w/cpp/language/operator_precedence

優先順位

10 & ビット AND
11 ^ ビット XOR (排他的論理和)
12 | ビットごとの OR (包括的 OR)
13 && 論理 AND
14 || 論理和

これは、'&'が'||' の前に評価されることを意味します。.

于 2013-06-29T20:59:38.923 に答える