omportamento definido para expressões

norma C99 diz em US $ 6.5.

Entre o ponto de sequência anterior e o próximo, 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.

(ênfase minha)

ote que o exemplo a seguir é válido (o que parece óbvio a princípi

a[i] = i;

Embora não indique explicitamente o quea ei estamos

Embora eu acredite que não, gostaria de saber se este exemplo abrange o seguinte caso:

int i = 0, *a = &i;
a[i] = i;

Isso vainã altere o valor dei, mas acesse o valor dei para determinar o endereço onde colocar o valor. Ou é irrelevante atribuirmos um valor ai que já está armazenado emi? Por favor, mostre alguma luz.

ergunta @Bonus; A respeitoa[i]++ oua[i] = 1?

questionAnswers(4)

yourAnswerToTheQuestion