Почему множественные приращения / убывания действительны в C ++, но не в C?

тест. (с / CPP)

#include 

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;
}

Если я сохраню вышеупомянутое как файл .cpp, он компилирует и выводит это после выполнения:

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

Однако, если я сохраняю его как файл .c, я получаю следующую ошибку:

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

не должен»т(++a) операция должна быть решена до(newValue)-- операция? У кого-нибудь есть понимание этого?

Ответы на вопрос(4)

Ваш ответ на вопрос