for(i=0;i<5;++i)和for(i=0;i<5;i++)没区别么?

xy328 2003-08-07 11:33:25
for(i=0;i<5;++i)和for(i=0;i<5;i++)没区别么?
i++和++i可是不同啊,怎么这两句话执行的结果却一样,i的范围都是0-4?
...全文
1072 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
gernal_dn 2003-08-08
  • 打赏
  • 举报
回复
i++与++i作为独立的语句存在时,没有区别!
不是独立存在时才有区别:
j = i++;
j = ++i;
lw549 2003-08-08
  • 打赏
  • 举报
回复
++i;和i++;的区别楼上各位已经说得很清楚了。如果不清楚,建议认真看书。打好基础。

这个问题的关键在于for循环的运行顺序。
//看看下面的代码,就知道如何执行了。

for(i=0;printf("%d",i);i++)
{
printf("xxxxx");
exit(0);//如果没有这个,就是死循环了。下面的讲解认为没有这个语句。
}
//1.执行i=0;
//2.执行printf("%d",i);
//3.执行{}
//4.执行i++;这里无论你写i++还是++i,最终的结果都是i=i+1;
//5.执行printf("%d",i);
//6.同3,循环。

robertcarlos 2003-08-08
  • 打赏
  • 举报
回复
试一下
for(i=1,i<10,i++)
printf("%d",i);
fpr(i=1,i<10,++i)
printf("%d",i);
应该会明白了
greenspan 2003-08-08
  • 打赏
  • 举报
回复
有区别,但对于内置的数据类型是当你那样写的时候,会被编译器优化成没有区别了
但是对于用户自定义的,编译器就无能为力了,就有区别了
一本很有名的C++书上说的,忘记书名了
bacp 2003-08-08
  • 打赏
  • 举报
回复
我倒~
想知道?
去看数据算法这类的书吧
chanet 2003-08-08
  • 打赏
  • 举报
回复
先加与后加
ccwwbb 2003-08-08
  • 打赏
  • 举报
回复
在以上两条语句中没有任何区别,只有当用在赋值语句中才有区别!
jinyongzhi 2003-08-07
  • 打赏
  • 举报
回复
sorry
是i<5不是i<50
jinyongzhi 2003-08-07
  • 打赏
  • 举报
回复
for (i=0; i<5; i++)
{
fun();
}
相当于
i=0;
while(i<50)
{
fun();
i++;
}
此时i是先加还是后加都一样。
new_red 2003-08-07
  • 打赏
  • 举报
回复
对于你说的循环来讲,就是没有区别。
jim77 2003-08-07
  • 打赏
  • 举报
回复
没有效果区别。在以上情况++i优于i++。
zoco33 2003-08-07
  • 打赏
  • 举报
回复
i++和++i是有区别。但都是使i自加1,是表达式的值不同。。例:i=1; j=i++;//j=1,i=2
i=1; j=++i;//j=2,i=2

在for(i=0;i<5;++i)和for(i=0;i<5;i++)里两个i每次循环的值都是一样的。
wfy 2003-08-07
  • 打赏
  • 举报
回复
++i
i++
一前一后,只是赋值的先后
chinazcw 2003-08-07
  • 打赏
  • 举报
回复
在这里前缀和后缀都一样,没有区别~~~~
xulei55969com 2003-08-07
  • 打赏
  • 举报
回复
我认为++i就是先给i自加,而后再引用;而i++就是先引用i,然后再给自加,这是在通常情况下是这样的。但是在程序中,遇到这样的语句,他的作用是一样,没有什么区别的!你可以自己写个程序看看!
thrillers 2003-08-07
  • 打赏
  • 举报
回复
++i就是(i=i+1) i++是(i=t,i=i+1,t)
thrillers 2003-08-07
  • 打赏
  • 举报
回复
没有,对for后面的程序美影响,但是i的变化强矿不一样,++i可以看作 (i+1) i++可以看作(i=t,i+1,t)
bm1408 2003-08-07
  • 打赏
  • 举报
回复
当然有区别了!

你可能把I的值输出来看看!一个是先使用再加1,一个是先加一再使用!
hdqqq 2003-08-07
  • 打赏
  • 举报
回复
在for循环中,这两种是一样的,都是在最后执行,是独立的一句.

相当于

for(i=0;i<5;) {

//adsfadsf

i++; 或者 ++i;

}
cgsw12345 2003-08-07
  • 打赏
  • 举报
回复
有分别的,看看C++标准库就知道了,i++中的++ 是用++i 中的++来实现的,所以尽量用++i而不用i++.可以提高效力。
加载更多回复(19)

70,014

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧