社区
C语言
帖子详情
for中疑问 大虾指教
Lynnlichao
2007-04-17 10:45:47
for(i=0;i<n;i++)
{
......
}
与for(i=0;i<n;++i)
{
.......
}
有何区别
i=0;
while(i<n)
{
if(...)
continue;
i++;
}
与
for(i=0;i<n;i++)
{
if()
continue;
}
又有什么差别
...全文
343
19
打赏
收藏
for中疑问 大虾指教
for(i=0;i<n;i++) { ...... } 与for(i=0;i<n;++i) { ....... } 有何区别 i=0; while(i<n) { if(...) continue; i++; } 与 for(i=0;i<n;i++) { if() continue; } 又有什么差别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kakabulusi
2007-10-24
打赏
举报
回复
多循环一次
tianhuo_soft
2007-10-19
打赏
举报
回复
4: int i=0;
00401028 mov dword ptr [ebp-4],0
5: i++;
0040102F mov eax,dword ptr [ebp-4]
00401032 add eax,1
00401035 mov dword ptr [ebp-4],eax
6: ++i;
00401038 mov ecx,dword ptr [ebp-4]
0040103B add ecx,1
0040103E mov dword ptr [ebp-4],ecx
这是汇编代码 所以++i 和i++没有区别
Lynnlichao
2007-10-19
打赏
举报
回复
最近有些忙 所以来的少 感谢各位的回答
sirguan
2007-04-17
打赏
举报
回复
for版本的没有区别,while版本的区别如下
i=0;
while(i<n)
{
if(...)
continue;//如果条件为真,则i++不会执行
i++;
}
与
for(i=0;i<n;i++)
{
if()
continue;//不论条件真假,i++仍然会执行
}
--------------------------------
ps:这种问题,楼主单步跟踪一下就知道了,何必多次一问,不是大家不乐意回答,关键不利于提高楼主自己动手解决问题的能力。
Benny_ywb
2007-04-17
打赏
举报
回复
编码规范提倡++i
loongee
2007-04-17
打赏
举报
回复
就从作用上来说是完全一样的。
wenbin
2007-04-17
打赏
举报
回复
个人爱好
lockhall
2007-04-17
打赏
举报
回复
效率问题
不过一般可以不作此优化.
gshuangVC
2007-04-17
打赏
举报
回复
++i 比 i++ 的效率更高
deng2000
2007-04-17
打赏
举报
回复
关于for(..., ++i) 与 for(..., i++), 就程序运行结果而言,它们是完全等价的.就运行效率来说,由于i++会导致产生一个临时变量, 前者的效率高那么一点点. 当然,因为循环变量i是个最简单的integer类型,这点微小差别在实际中可以忽略不计, 除非你是在面试中应付变态考官问这一问题.
真正有意义的情况是循环变量是一个复杂类型的场合. 例如遍历STL中vector:
vector<int> vec;
...
for(vec::const_iterator i=vec.begin(); i!=vec.end(); ++i)
这时如果把最后的++i改成i++, 效率差别就比较大了.
todototry
2007-04-17
打赏
举报
回复
木什么区别的
linuxhaha
2007-04-17
打赏
举报
回复
for()好像更有效一些。
hellodudu
2007-04-17
打赏
举报
回复
好像没耶
zerofinish
2007-04-17
打赏
举报
回复
没有区别吧
freshui
2007-04-17
打赏
举报
回复
没区别
chensanniang
2007-04-17
打赏
举报
回复
有所心得:i++和++i 在单独作为一个语句的时候,好像没有多大区别,就我目前的水平来看好像是这么回事
楼主有什么好的心得可以再发帖.
chensanniang
2007-04-17
打赏
举报
回复
楼主再看:#include <stdio.h>
int main(void)
{
int a=0,b;
a++;b=a;
printf("%d\n",b);
a=0;
++a;b=a;
printf("%d\n",b);
return 0;
}
输出的都是1
chensanniang
2007-04-17
打赏
举报
回复
楼主这个问题有意思:++i和i++,也就是自增,我们常叫它自加.他们的区别是前者表示使用前就加一,后者则表示使用后加一.
它们也只有在特定的块中才会有区别,作用域以后,无区别.
例如:赋值时有区别a=i++;和a=++i;
bidepan2023
2007-04-17
打赏
举报
回复
楼上正解!
软件工程笔试题目
有一个16位的整数,每4位为一个数,写函数求他们的和。 ... 既然是16位的整数,1101010110110111是2进制的,那么函数参数怎么定义呢,请
大虾
指教
。 答案:用十进制做参数,计算时按二进制考虑。
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存
中
的图象显示到客户端Microsoft IE WebControls下载地址如何在DATAGRID
中
使用JAVASCRIPT脚本控制DataGrid...请
大虾
指教
那
如何配置Oracle客户端
各位
大虾
,我安装完Oracle客户端后,在Net8 Configuration Assistant
中
配置时,老是不能与主Oracle数据库端连通,局域网正常,能Ping通,此问题是什么原因造成的?在客户端安装好以后,服务器那端还需要进行什么配置...
vxWorks FAQ
中
文版收藏-转载之下
3.2.1.4 860
中
的程序调用,在860的BSP文件 romInit.s
中
,在程序末尾有条指令是跳转到 romStart(),在这之前有个计算 romstart() 入口地址的公式. romstart入口地址= romstart - romInit + ROM_TEXT_ADRS.我对这个公式的...
allegro使用汇总
1.如何在allegro
中
取消花焊盘(十字焊盘) set up->design parameter -> shape->edit global dynamic shape parameters->Thermal relief connects -> Thru pins ,Smd pins -> full contact 2.allegro
中
...
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章