C++自增运算符


记得最初上C++课的时候老师说,n=p++ 操作是先把p赋给n,然后p自增。这其实是个谬误,应该是老师不想给刚刚接触C++的我们增加麻烦,他也省了事,或者他真的不知道?

正确的理解应该是:

因为有了额外的拷贝操作,也就不难理解为什么C++ Primer建议如非必要应该使用前自增以获得效率。相对于后自增,前自增直接对操作对象进行自增后返回,所以效率高。自减操作应该与此类同。

以前从来没有关注过效率问题,目前也还没碰到(代码敲的太少的过~)。C++ Primer中在循环测试中也一直倡导用!= 替换< 来判断结束,这二者之间是不是也应该有一些效率因素?

附上优先级

enter image description here


Haiyang Xu 08 November 2012