В VC2008 я набрал этот код:
int a = 2 + 1 & 0;
и результатом этого выражения является = 0
Почему результат равен 0, а не 2?
Поскольку оператор & вычисляется после оператора + и 3 & 0 равно 0.
&
+
3 & 0
0
Конечно, вы можете заключать фигурные скобки вокруг выражений, чтобы изменитьпорядок оценки.Например:
int a = 2 + (1 & 0); /* a == 2 */
+ имеет больший приоритет, чем &. Здесь - полная таблица приоритетов операторов.