¿Por qué los incrementos / decrementos múltiples son válidos en C ++ pero no en C?

prueba. (c / cpp)

#include <stdio.h>

int main(int argc, char** argv)
{
  int a = 0, b = 0;
  printf("a = %d, b = %d\n", a, b);
  b = (++a)--;
  printf("a = %d, b = %d\n", a, b);

  return 0;
}

Si guardo lo anterior como un archivo .cpp, compila y genera esto en la ejecución:

a = 0, b = 0
a = 0, b = 1

Sin embargo, si lo guardo como un archivo .c, obtengo el siguiente error:

test.c:7:12: error: lvalue required as decrement operator.

No deberia el(++a) operación se resuelva antes de la(newValue)-- ¿operación? ¿Alguien tiene alguna idea sobre esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta