结果当然一样啦。
++i的结果是:i+=1,并返回i
而i++的结果是:j=i,i+=1,最后返回j
这样对于循环来说,并没有区别。因为i++和++i都是单独执行的,只有返回值的区别的而已。没有用到返回值,都是一样的。
没有用到返回值是什么意思,j是什么?另外++操作在什么时候进行?谢谢~
@Neverland1995: ++其实你应该当成是一个函数。
你是刚学编程吗?建议看看书上的基础吧~j只是一个临时量,用于保存i原来的值,i++之后用作返回值。
一直以来,++ --语法浪费了太多人的时间。说句实在话,++ -- 在C语言中其实是一个很细节的语法,除了表达简练外,真的没有什么其它的好处了。
由于中国的C语言教程长期以来被谭浩强主宰,而谭又错误的把++ --作为一个C语言重点来教,并增加了一些难点,把本来很简单的语法,搞得复杂无比!
简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。
而 a = ++i,相当于 i=i+1; a = i;
而 a = i++,相当于 a = i; i=i+1;
如果实在搞不明白++ --怎么回事,那也不是什么天塌下来的事。
因为a=++i完全可以写成 i++; a=i。
a=i++完全可以写成 a=i; i++。
而且,这也是一种好的程序风格:++ -- 语句如非特殊需要,请单独一行使用。
使用时如果++i 与 i++ 都可以的话,建议使用 ++i,因为++i 比 i++更快。i++ 需要对数据备份,++i不需要。特别用于对用户自定义的类型时,效果更明显。
楼主也可以参考下STL原码剖析中的list的实现,其中对前置++和后置++都有重载,从代码的理解上他们也许会有那么点区别,可以说有时候前置++的效率略高于后置++。
int main(){
int i=0,j=0,a,b;
a=++i;
b=j++;
cout<<"i="<<i<<endl;
cout<<"j="<<i<<endl;
cout<<"a="<<a<<end;
cout<<"b="<<b<<endl;
}
就能看出区别了