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

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

本文关键字:Prefix Decrement 在一起 Assignment Compound 错误      更新时间:2023-10-16

有人可以告诉我,为什么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识别为l-value ,但是 C++是?!

在C中,前缀--操作员产生一个rvalue。RVALUE不能是任务运营商的左操作数。也就是说,C和C 是两种不同的语言。