Почему результат 2 + 1 & 0 равен 0? - PullRequest
6 голосов
/ 29 декабря 2011

В VC2008 я набрал этот код:

int a = 2 + 1 & 0;

и результатом этого выражения является = 0

Почему результат равен 0, а не 2?

Ответы [ 2 ]

17 голосов
/ 29 декабря 2011

Поскольку оператор & вычисляется после оператора + и 3 & 0 равно 0.

Конечно, вы можете заключать фигурные скобки вокруг выражений, чтобы изменитьпорядок оценки.Например:

int a = 2 + (1 & 0);
/* a == 2 */
5 голосов
/ 29 декабря 2011

+ имеет больший приоритет, чем &. Здесь - полная таблица приоритетов операторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...