Рассмотрим пример классической последовательности:
i = i++;
В стандартах на C и С++ указано, что поведение вышеуказанного выражения undefined, поскольку оператор = не связан с точкой последовательности.
Меня смущает то, что ++
имеет более высокий приоритет, чем =
, и поэтому приведенное выше выражение на основе приоритета должно сначала оценить i++
, а затем выполнить назначение. Таким образом, если мы начинаем с i = 0
, мы всегда должны заканчивать с i = 0
(или i = 1
, если выражение было i = ++i
), а не undefined. Что мне не хватает?