Приращение и приоритет логических операторов [дубликаты]
На этот вопрос уже есть ответ здесь:
Поведение короткого замыкания логических выражений в C в этом примере 1 ответПриоритет оператора по сравнению с порядком оценки 6 ответовВ программе, показанной ниже, префикс должен оцениваться первым, потому что он имеет более высокий приоритет, но ответ-2, 2, 0, 1
и это объясняется в книге "поскольку LHS of || является истинным, RHS не оценивается".
Почему это так? Все приращения должны выполняться сначала, а затем логический должен быть проверен из-за приоритета.
#include<stdio.h>
int main()
{
int i=-3, j=2, k=0, m;
m = ++i || ++j && ++k;
printf("%d, %d, %d, %d\n", i, j, k, m);
return 0;
}