二.再讲讲i++和++i的实现
原来也一直迷惑于i++与++i的返回值的问题,但一直没弄明白.这次一并查清楚吧.
首先对于i++的实现是:
int temp;
temp = i;
i = i+1;
return temp;
而++i的实现是:
i = i+1;
return i;
所以对于我们提出来的问题已经能得到解决了:
i++=5; 是错误的是因为i++返回的是编译器自动分配的临时变量temp,而这个temp并不是你程序中定义的可寻址变量的引用,也就是说你不能通过地址对它进行操作.(换句话说就是不能作为左值)
++i=5;是正确的就是因为其返回值就是i;
参考资料:http://blog.csdn.net/kongbai308416350/article/details/4476509