Я не могу понять некоторые предложения в C99

В C99 6.5 написано:

Между предыдущей и следующей точкой последовательности объект должен иметь свое сохраненное значение, измененное не более одного раза путем оценки выражения. Кроме того, предыдущее значение должно быть только для чтения, чтобы определить значение, которое будет сохранено

Что означает «Кроме того, предыдущее значение должно быть прочитано только для определения значения, которое будет сохранено»? Почему в С99a[i++] = 1 такое неопределенное поведение?