Warum sind mehrere Inkremente / Dekremente in C ++ gültig, aber nicht in C?

Test. (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;
}

Wenn ich das Obige als .cpp-Datei speichere, kompiliert es dies und gibt es bei der Ausführung aus:

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

Wenn ich es jedoch als C-Datei speichere, wird die folgende Fehlermeldung angezeigt:

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

Sollte das nicht(++a) Betrieb vor dem gelöst werden(newValue)-- Operation? Hat jemand einen Einblick in das?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage