Почему в C ++ true && true || false && false == true?

Я хотел бы знать, знает ли кто-нибудь, как компилятор интерпретирует следующий код:

#include <iostream>
using namespace std;

int main() {
 cout << (true && true || false && false) << endl; // true
}

Верно ли это, потому что && имеет более высокий приоритет, чем ||, или потому что || является оператором короткого замыкания (другими словами, игнорирует ли оператор короткого замыкания все последующие выражения или только следующее выражение)?

16
задан Andrew 12 December 2010 в 20:40
поделиться