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

i++与++i在使用上的区别是什么?该怎么解决

2012-02-15 
i++与++i在使用上的区别是什么?i++:是先使用i的值,再自增1.++i:则是先自增1,然后再使用。但在For循环中为什

i++与++i在使用上的区别是什么?
i++:是先使用i的值,再自增1. 
++i:则是先自增1,然后再使用。 
但在For循环中为什么它们没有这样的区加呢? 
在下面的代码中: 

C/C++ code
#include <iostream>using namespace std;int main(){    for(int i=0;i<=6;++i)    cout<<"loop"<<i<<"\t";    cout<<endl;    }


如果把++i 换成 i++,其结果也是一样的,如何去理解和应用呢。请高手指教下?

[解决办法]
如果你看了上面的回复还是不懂的话,我举个例子来说明。
一个很普通的赋值语句A=I++,B=++I。
先给I赋初值,I=4。

所以,执行A=I++的话,A=4,I=5,也就是说,先使用I的值,然后在做自增运算。

相反的,执行B=++I的话,B=5,I=5,就是说,先做在做自增运算,再把得到的值赋给B。


希望能给你点帮助……

[解决办法]
写错了,倒数第4行
是i++;//或++i
[解决办法]
引用楼主 jzgl_cadn 的帖子:
i++:是先使用i的值,再自增1.
++i:则是先自增1,然后再使用。
但在For循环中为什么它们没有这样的区加呢?
在下面的代码中:

C/C++ code
#include <iostream>
using namespace std;
int main()
{
for(int i=0;i<=6;++i)
cout<<"loop"<<i<<"\t";
cout<<endl;
}



如果把++i 换成 i++,其结果也是一样的,如何去理解和应用呢。请高手指教下?

[解决办法]
引用楼主 jzgl_cadn 的帖子:
但在For循环中为什么它们没有这样的区加呢?

[解决办法]
i++是在使用了i后自增1,在i被调用时,必须现将其存放在一个临时变量中,保存的作用,实际上被调用的是那个临时变量,i本身已经+了1

++i是在使用i之前自增1,在i被调用时,先执行:i+=i;调用它的的函数才可以真正的调用它!
 
解释的不是很好 大概就是这个意思吧
[解决办法]
在你的程序中++i和i++的功能是一样的,都是使for循环能执行下去,但具体意义不同。
例如:j=++i;(i的值先变成4,再赋给j,j的值为4)
j=i++;(先将i的值3赋给j,j的值为3,然后i变为4)
显然最后i的值相同,但j的值不同。
就像你的程序中的一样执行结果是一样的,因为到最后i的值都一样。

热点排行