4

可能重复:
为什么 ++i 被认为是左值,但 i++ 不是?

在 C++(以及 C)中,如果我写:

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

我得到错误:需要左值作为增量操作数

但是(++x)--编译。我很困惑。

4

1 回答 1

10

后增量和前增量运算符仅适用于左值。

当您调用时++i,值i会递增,然后i返回。在 C++ 中,返回值是变量并且是左值。

当您调用i++(or i--) 时,返回值是i递增之前的值。这是旧值的副本,与变量不对应,i因此不能用作左值。

无论如何不要这样做,即使它编译。

于 2010-07-19T14:00:36.707 回答