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