Nie rozumiem niektórych zdań w C99

W C99 6.5 mówi:

Pomiędzy poprzednim i następnym punktem sekwencji obiekt powinien mieć zapisaną wartość co najwyżej raz przez ocenę wyrażenia. Ponadto wartość wstępna powinna być odczytywana tylko w celu określenia wartości, która ma być przechowywana

Co oznacza „Co więcej, wcześniejsza wartość powinna być odczytywana tylko w celu określenia wartości do przechowywania”? W C99, dlaczegoa[i++] = 1 jest niezdefiniowane zachowanie?

questionAnswers(2)

yourAnswerToTheQuestion