4

重複の可能性:
++ iがl値と見なされるのに、i ++は考慮されないのはなぜですか?

C ++(およびC)では、次のように記述します。

++x--
++(x--)

エラーが発生します:インクリメントオペランドとして左辺値が必要です

ただし(++x)--、コンパイルします。私は混乱しています。

4

1 に答える 1

10

後置および前置インクリメント演算子は、左辺値に対してのみ機能します。

を呼び出すと++i、 の値iがインクリメントされてからi返されます。C++ では、戻り値は変数であり、左辺値です。

i++(または)を呼び出すとi--、戻り値はiインクリメントされる前の値です。これは古い値のコピーiであり、変数に対応していないため、左辺値として使用できません。

とにかく、たとえコンパイルされたとしても、これをしないでください。

于 2010-07-19T14:00:36.707 に答える