大部分人理解的前自加和后自加的区别是:前自加先+1,再运算;后自加先运算,再+1。你也是这样吧?这已经成为了大多数人的共识,但是是错误的。
现在我来帮你纠正++和--的作用:
前置操作返回加1或减1后的结果,所以返回的是对象本身,这是左值。而后置操作返回一个临时的常量,该常量保留对象加1或减1之前值。不管是前置操作还是后置操作,加1或减1总是执行的。
举例来说明一下:
int i = 0;
int a = ++i; //执行++i,则i的值变成1,而(++i)这个整体由于前置操作返回对象本身,所以整体也是1,则a = 1
int b = i++; //执行i++, 则i的值变成2,而(i++)这个整体由于后置操作返回对象+1之前的值,所以整体还是1,则b = 1
另外,如果有下列写法,第二句是错误的:
++i = 1;
i++ = 1;
至于原因,我想你能明白。
追问懂!!答的好!为你加分!