代码之家  ›  专栏  ›  技术社区  ›  Xolve

在同一变量上混合后加和前加/减运算符[重复]

  •  4
  • Xolve  · 技术社区  · 14 年前

    可能重复:
    Why is ++i considered an l-value, but i++ is not?

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

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

    然而 (++x)-- 编译。我很困惑。

    1 回复  |  直到 7 年前
        1
  •  10
  •   Mark Byers    14 年前

    增量后和增量前运算符只对左值起作用。

    当你打电话的时候 ++i i 是递增的,然后 已返回。在C++中,返回值是变量,是一个LValk。

    当你打电话的时候 i++ i-- 复制 与变量不对应 所以它不能用作左值。

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