标签: c++ c increment decrement
可能重复: Why is ++i considered an l-value, but i++ is not?
在C ++中(以及在C中),如果我写:
++x-- ++(x--)
我得到错误:左值作为递增操作数
然而(++x)--编译。我很困惑。
(++x)--
答案 0 :(得分:10)
后增量和前增量运算符仅适用于左值。
当您致电++i时,i的值会增加,然后会返回i。在C ++中,返回值是变量,是一个左值。
++i
i
当您致电i++(或i--)时,返回值是i之前递增的值。这是旧值的副本,与变量i不对应,因此不能用作左值。
i++
i--
无论如何,即使它编译也不要这样做。