Eu não consigo entender algumas frases em C99

Em C99 6.5 diz:

Entre o ponto de seqüência anterior e o seguinte, um objeto deve ter seu valor armazenado modificado no máximo uma vez pela avaliação de uma expressão. Além disso, o valor anterior deve ser lido apenas para determinar o valor a ser armazenado

O que significa "Além disso, o valor anterior deve ser lido apenas para determinar o valor a ser armazenado" significa? Em C99, porquea[i++] = 1 é um comportamento indefinido?

questionAnswers(2)

yourAnswerToTheQuestion