【C语言】++(a++)的写法是错的

http://bbs.csdn.net/topics/390764053

a++得到的是一个右值,++操作需要的是一个左值。

------------------------------------------------------

a++返回的是一个右值,不对再++了,可以写成
++(++a)

http://www.2cto.com/kf/201409/333447.html

a++的意思是先复制一份临时数据出来参与周边环境的运算,再自加变量a,可见a++用来参与运算的是一份复制出来的临时数据,这个数据是临时存在而没有固定地址的,不是一个真正的变量。++a的意思是先自加变量a,再将变量放到周边环境参与运算,那么++a用来参与运算的是有具体地址的变量,所以++a是可以作为左值使用的。

在具体一点可以理解为:

a++返回一个临时变量

++a返回变量的引用

原文地址:https://www.cnblogs.com/dplearning/p/4890194.html