¿Es este comportamiento indefinido “* ptr ++ = * ptr + a”?

Bueno, no estoy realmente en necesidad de esta respuesta, solo soy inquisitivo.

Expresiones como*ptr++ = a Son perfectamente válidos ya que estamos operando en dos objetos.ptr y*ptr pero si escribo*ptr++ = *ptr + a Sigue siendo válido ?

Por ejemplo, considere el siguiente fragmento de código:

int main(void){
   int a[] = {5,7,8,9,2};

   int* p =a;

   *p++ = 76; /*altering the first element */
   *p++ = *p + 32; /*altering the second element */    

   p = a;
   int i;
   for(i = 0;i<5; i++)
      printf("%d ",*p++);

   return 0;
}

Creo que no hay nada de qué preocuparse con la expresión.*p++ = *p + 32; pero no estoy seguro de los puntos de secuencia involucrados.

Respuestas a la pregunta(5)

Su respuesta a la pregunta