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;

私はエラーが何を言っているのか知っています...

しかし、コンパイラが左辺値として認識できないのに、なぜ認識できるのか理解できません。CmyVarC++

4

1 に答える 1

6

C では、前置--演算子は右辺値を生成します。右辺値を代入演算子の左オペランドにすることはできません。つまり、C と C++ は 2 つの異なる言語です。

于 2015-05-05T15:12:47.870 に答える