注册 登录
编程论坛 C++教室

i++和++i有什么不同

心剑无痕 发布于 2010-02-10 16:36, 2707 次点击
在一个for循环中例如for(int i=0;i<=5;i++)跟for(int i=0;i<=5;++i)有什么不同的地方,他俩有什么区别
6 回复
#2
gyx88992010-02-10 18:15
上面两个式子效果一样。
每经过一次循环,i递增1。
例子:
for(int i=0;i<=5;i++)

等价于:
int i=0;
while(i<=5)
{ i++;}
for(int i=0;i<=5;++i)
;
等价于:
int i=0;
while(i<=5)
{ ++i; }
当把(i++)或(++i)赋给其它变量时,有区别。
#3
范SKY19892010-02-10 18:19
++i   先自加1然后调用i
i++   先调用i然后自加1

上面这两个循环意思一样
你看看下面这个

#include<iostream>
using namespace std;

int main()
{
    int i=0;
    int m=0;
    cout<<i++<<"    ";
    cout<<++m<<"    ";
}
#4
promising2010-02-10 20:50
赞同上面两位。
曾经我也困惑过,但运行结果是相同的,都是for(int i=0;i<=5;i=i+1)的意思。
#5
心剑无痕2010-02-10 22:23
三楼那句真经典
#6
哥是传说2010-04-27 17:38
同意三楼观点
#include<iostream.h>
int main()
{
int a,i=0;
a=++i;//相当于i=i+1;a=i;
cout<<"a="<<a<<endl;
return 0;
}
#include<iostream.h>
int main()
{
int a,i=0;
a=i++;//相当于a=i;i=i+1;
cout<<"a="<<a<<endl;
return 0;
}
#7
zzt_4282010-04-27 18:27
两种写法i的值都是加1,不同的是 i++和++i表达式的值
1