C:错误使用:"Compound Assignment" 和 "Prefix Decrement" 在一起

C: Error in Using: "Compound Assignment" and "Prefix Decrement" together

有人能告诉我为什么 C 编译器在同时使用 Compound AssignmentPrefix Dec/Inc 时输出错误吗? [ 但 C++ 没有 ]

int myVar = 5;
(--myVar) -= 4;
// C  : error C2106: '-=' : left operand must be l-value
// C++: myVar=0;

我知道错误是什么意思...

但是,我无法理解 为什么 C 编译器无法将 myVar 识别为左值 C++是吗?!

在 C 中,前缀 -- 运算符产生一个右值。右值不能是赋值运算符的左操作数。也就是说,C 和 C++ 是两种不同的语言。