首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

前自增和后自增的区别解决思路

2012-02-26 
前自增和后自增的区别我只简单地知道,前置是先自增再参加运算,而后置是先参加运算再自增.书上说使用前置可

前自增和后自增的区别
我只简单地知道,前置是先自增再参加运算,而后置是先参加运算再自增.
书上说使用前置可以减少开销,我不太明白.大家帮忙指教一下.

书上举例:
int i=0,j;
j=++i;
j=i++;
建议使用前置操作,因为它需要做的工作更少,只需加1后返回加1后的结果即可.而后置操作符则必须先保存操作数原来的值,以便返回未加1之前的值作为操作的结果.
-------
对于j=i++不就是先吧i的值赋给j,完成这个操作后j已经被赋值,接着再把i的值自增1即可...感觉很顺啊..


[解决办法]
书上不是说得很清楚吗,后++时,需要先保存原来的值, 而前++,不需要保存这个值,直接对原来的数据进行操作。
考虑一下for(int i = 0; i < 20; i++)和for(int i = 0; i < 20; ++i)的区别
[解决办法]
有道理,在前置和后置对代码影响相同的情况下要选择前置。
[解决办法]
http://topic.csdn.net/u/20071018/19/ce7378b9-ea91-4d8a-9d93-e55ed75f991e.html
[解决办法]
很清楚了啊
[解决办法]
前置和后置在C++中实现是不一样的,前置是在对象上自加或者自减,之后返回这个对象,后置是先返回对象的一个拷贝,并且是以const的形式返回的,之后再将本对象自加自减。
[解决办法]
类似于:
operator ++( )//前置,this指向操作数的地址
{
*this = *this + 1;
return *this;
}

perator ++(int)//后置
{
temp = *this;
*this = *this + 1;
return temp; 
}
[解决办法]
通俗的说,++i 和 i++ 最后的值都一样,但是如果j = ++i 和 j = i++ j的值不一样。一个是++后返回,一个是++前返回。
[解决办法]
5楼,你说的那个实现是怎么得来的啊,分析得很底层啊
[解决办法]
c++ primer上好像有这种说法
[解决办法]
看六楼的实现代码就可以发现,后置比前置多定义了一个临时变量,因此效率要低些。
当然,语意也不一样。
但对于如下情形:
for(int i = 0; i < 20; i++)和for(int i = 0; i < 20; ++i)
因为i是内置类型,很难说有什么效率上的差别。

热点排行