《C++ Primer》5.5  P140

错误描述:

Because the prefix version returns the incremented value, it returns the object itself as an lvalue. The postfix versions return an rvalue.

因为前置操作返回加1后的值,所以返回对象本身,这是左值。而后置操作返回的则是右值。

 

《C和指针》5.1.5  P73

正确描述:

抽象地说,前缀和后缀形式的增值操作符都复制一份变量值得拷贝。用于周围表达式的值正是这份拷贝。前缀操作符在进行复制之前增加变量的值,后缀操作符在进行复制之后才增加变量的值。这些操作符的结果不是被它们所修改的变量,而是变量的拷贝。

不管抽象不抽象,前缀形式的自增自减操作符的结果是不能用作左值的,下面的操作就是错误的:

++a = 10;

posted on 2011-05-10 19:50  龍蝦  阅读(409)  评论(1编辑  收藏  举报