Оценка следующего выражения
Следующий фрагмент кода:
int i=-3,j=2,k=0,m;
m=++i && ++j || ++k;
можно оценить, используя две концепции, я считаю:
1. Поскольку оператор ++ имеет больший приоритет, чем логические операторы, поэтому сначала оцениваются все операторы приращения, затем && имеет более высокий приоритет, чем || будет вычислен. В этом процессе, k будет увеличиваться.
2. Первый && оператор будет оценен. Для этого ++ i и ++ j будут вычислены. Так как результат && Оператор равен 1, нет необходимости оценивать ++ k. Поэтому k не будет увеличиваться.
Когда я пробую это в системе, результат доказывает, что аргументация 2 верна, а 1 неверна. Почему это так?