社区
C语言
帖子详情
关于for循环中的i++和++i??谢谢
kkting
2004-10-11 12:50:30
我觉的在for循环中,i++和++i功能是一样的!我自己验证的程序如下:
main(){
int i;
for(i=0;i<10;i++)
{printf("%d",i);}
printf("%d",i);
}
和下面这个:
main(){
int i;
for(i=0;i<10;++i)
{printf("%d",i);}
printf("%d",i);
}
请高手指教:我的观点是在for循环中,i++和++i是一样的,没有一点区别!
...全文
533
16
打赏
收藏
关于for循环中的i++和++i??谢谢
我觉的在for循环中,i++和++i功能是一样的!我自己验证的程序如下: main(){ int i; for(i=0;i<10;i++) {printf("%d",i);} printf("%d",i); } 和下面这个: main(){ int i; for(i=0;i<10;++i) {printf("%d",i);} printf("%d",i); } 请高手指教:我的观点是在for循环中,i++和++i是一样的,没有一点区别!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
andycpp
2004-10-11
打赏
举报
回复
在这里确实没区别
oo
2004-10-11
打赏
举报
回复
你是对的。
yjh1982
2004-10-11
打赏
举报
回复
-_-
mava
2004-10-11
打赏
举报
回复
我觉着应该只能说,在这段程序中++i和i++没区别.
而不能说在for循环中
wz19761022
2004-10-11
打赏
举报
回复
To大雪无痕:
我有点看法在:cout<<++i<<i中,到最后应该是值已经作了++运算,好象不是使用你说的机智.
请批评指正.
zhangfjj
2004-10-11
打赏
举报
回复
int i = 0;
cout<<"i = "<<i++;
cout<< "After i++ i = "<<i<<endl;
i = 0;
cout<<"i = "<<++i;
cout<< "After ++i i = "<<i<<endl;
============
i++ 后缀,先取i的值作表达式的值,再使i加1
++i 前缀,先使i加1,再取i的值作表达式的值
所以脱离具体情况讨论是没有意义的,
当不用表达式的值时,二者是完全相同的,即使i+1
而当要用表达式的值时,这时才有区别。
楼主的话也说得不清楚
wz19761022
2004-10-11
打赏
举报
回复
To楼上:
我有点看法在:cout<<++i<<i中,到最后应该是值已经作了++运算,好象不是使用你说的机智.
请批评指正.
3DO314li
2004-10-11
打赏
举报
回复
不是你的i++和++i没有区别;而是你的例子不对。
i++ 和 ++i执行到下面的一条语句的时候,其实都是加1;
但是在i++,或者++i这条语句的时候,他们的意思是不同的。
#include <stdio.h>
#include <iostream>
using namespace std;
void main()
{
int i = 0;
cout<<"i = "<<i++;
cout<< "After i++ i = "<<i<<endl;
i = 0;
cout<<"i = "<<++i;
cout<< "After ++i i = "<<i<<endl;
cin>>i;
}
这个例子你就知道他们的区别了!!
kobefly
2004-10-11
打赏
举报
回复
楼主
是对的啊
呵呵
wytianjiao
2004-10-11
打赏
举报
回复
在这里当然是一样的,要是cout<<++i<<i;和
cout<<++i;
cout<<i;
输出就不一样了
更何况仅仅在for循环中,也要看实际的编译器的环境,才能确定是不是用了生成副本的机制,即暂时的拷贝构造函数
xylr
2004-10-11
打赏
举报
回复
你的理解正确
wz19761022
2004-10-11
打赏
举报
回复
具体情况要看编译器不同编译器可能有所不同,不能一概而论.
zhangfjj
2004-10-11
打赏
举报
回复
for(i=0;i<10;i++)
{...
}
==>
i=0;
while(i<10)
{...
i++; //丢弃了表达式的值,所以i++也好,++i也好,都一样!
}
sqfeiyu
2004-10-11
打赏
举报
回复
for循环條件中的i++和++i是沒有區別的.
zfowen
2004-10-11
打赏
举报
回复
可能有效率上的区别,i++这个表达式要先把表达式的值传出,再对i进行自加,因此
需要一个临时变量来保存表达式的值,而++i先对i自加,再传出表达式的值的时候直接
把i传出就可以了,不需临时变量。
道理上讲大概是这样,也许有很多编译器会做优化,发现表达式值没有用到就省略了
临时变量。因此实际应用中可以说是没区别吧。
winco
2004-10-11
打赏
举报
回复
u are right.
maybe the only difference is that "i++" will produce a copy.
for
循环
中
i
++
与
++
i的区别
2、for
循环
内部仅形式不同:当i
++
循环
和
++
i
循环
在for
循环
内部,虽然形式上明显不同,但输出结果可以一样。如下图所示: for(i
++
)
循环
: 输出结果: for(
++
i)
循环
: 输出结果: 3、printf()输出...
for
循环
中
i
++
和
++
i 区别
for
循环
中
i
++
在处理时,i
++
实际为i = i+1,执行时先创建临时变量保存 i 值,然后再+1,而
++
i不需要的,没有这个过程,所以
++
i的性能高于i
++
;for
循环
中
i
++
由于要创建临时变量并保存i的值,所以需要占用内存,使用...
For
循环
中
的
++
i与i
++
的区别
前言: 在刷LeetCode
中
参考最佳...for
循环
中
i
++
:java
中
i
++
是先返回i的值后再自增i,所以在每次for
循环
时都会花费额外的内存和时间去开辟新的临时变量空间来转存,故其效率会更低。 for
循环
中
++
i:java
中
++
i是直接将
C语言 for
循环
中
i
++
和
++
i的比较
那么对于for
循环
来说,i
++
和
++
i有什么区别呢? 首先需要明确i
++
和
++
i的定义
++
是自增运算符,其作用是将作用对象的值增加1
++
放在作用对象的前面的话,例如
++
i,作用是将i加1,然后返回i加1之前的数值
++
放在作用...
java里面for
循环
中
i
++
与
++
i的区别
平时在使用for
循环
时,都是这样写的:for(int i=0; i; i
++
),用的 i
++
。然而今天看算法的时候,发现有的for
循环
是这样的:for(int i=0; i;
++
i),用的
++
i。for
循环
中
i
++
和
++
i 有什么区别呢?
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章