3

有人可以告诉我为什么编译器在使用 a和 a时C会输出错误吗?[但没有]Compound AssignmentPrefix Dec/IncC++

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

我知道错误说什么......

但是,我不明白为什么C编译器不能识别myVar为左值C++可以?!

4

1 回答 1

6

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

于 2015-05-05T15:12:47.870 回答