Объясните порядок выполнения операций

Есть выражение с наличием постинкремента.

int e = 0, f = e++ + 5 * e;
Console.WriteLine($"e = {e}, f = {f}");

В итоге выводит e = 1, f = 5 хотя по логике

  1. 5 умножаем на e т.е. 5*0 = 0
  2. e + 0 = 0 значит f = 0
  3. увеличиваем e++ значит e = 1

Итог: по моей логике е = 1, f = 0


Ответы (1 шт):

Автор решения: UModeL

Ваша логика неверна, ибо постфиксный инкремент (...++) имеет в данном выражении наибольший приоритет и действует он так - значение операнда возвращается, а затем увеличивается на единицу.

Таким образом:

  1. Возвращаем e (0) на место e++
  2. Увеличиваем e на единицу
  3. Умножаем
  4. Складываем
→ Ссылка