自增操作符和自减操作符
在学习C或C++的时候,总是弄混前(后)自增操作符和前(后)自减操作符。
在C++ Primer中
就有介绍两者的差别。下面通过简单的代码来解释两者的区别。
int i=0,j;
j=i++;
cout<<"使用后自增操作符后j="<<j<<endl;
cout<<"使用后自增操作符后i="<<i<<endl;
打印之后的结果如下图:
j等于i++的返回值,可以看出在使用后自增操作符之后,j=0;而i自身加一,即i=1;
int i=0,j;
j=++i;
cout<<"使用前自增操作符后j="<<j<<endl;
cout<<"使用前自增操作符后i="<<i<<endl;
使用前自增操作符之后的结果如下图:
j依旧等于++i的返回值,可以看出使用前自增操作符后,得到的返回值为i加一之后的结果。同时i自身也加一。
所以i++和++i的最大区别在于,i++会产生一个对象来装载自加前的值并将它返回。并且i自身加一。但是++i不会产生临时对象来装载自加前的值,
而是直接将i进行自加,然后将自加后的值直接返回。