废话不说,直接引入正题~
++i会将i的值自增1,然后将i的值返回。
i = 1;
j = ++i;
(i 等于 2, j 等于 2)
i++会将i的值自增1,但是将自增之前的值返回
i = 1;
j = i++;
(i 等于 2, j 等于 1)
对于一个for循环来说
for(...;...;i++){}
for(...;...;++i){}
通常来说,更加倾向于使用++i,因为在K&R中使用++i (注:K&R指The C Programming Language一书,该书中代码风格简练,被极大的推崇)
----------------------------------------------------------------------
关于++i和i++的效率问题,一直是人们讨论的话题。
实际上,i++和++i在c语言里面效率是一样的,这里引用一个Example
extern void g(int i);
void f()
{
int i;
for (i = 0; i < 100; i++)
g(i);
}
extern void g(int i);
void f()
{
int i;
for (i = 0; i < 100; ++i)
g(i);
}
经过编译后
$ md5 i++.s ++i.s
MD5 (i++.s) = 90f620dda862cd0205cd5db1f2c8c06e
MD5 (++i.s) = 90f620dda862cd0205cd5db1f2c8c06e
$ md5 *.o
MD5 (++i.o) = dd3ef1408d3a9e4287facccec53f7d22
MD5 (i++.o) = dd3ef1408d3a9e4287facccec53f7d22
而在C++里面,++i的效率则要比i++更高,这是因为,在C++里面的operator++()是一个函数,编译器并不知道i++临时保存下来的可以被优化。
总而言之的话,我个人推荐在无必要的情况下,采用++i代替i++
分享到:
相关推荐
VB+access综合人事管理系统的设计与实现(论文+系统+开题报告+答辩PPT+摘要及目录).zip
JSP学生学籍管理系统(源代码+论文+开题报告+外文翻译+答辩PPT).zip
JSP+SQL基于WEB的开放性实验管理系统设计与实现(源代码+论文+开题报告+中英文献+答辩PPT).zip
摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 B/S架构 4 2.2 Java技术介绍 6 2.3 mysql数据库介绍 6 2.4 springboot框架 4 第3章 系统...
asp图书管理系统设计与实现(源代码+论文+开题报告+答辩PPT).zip
JSP+SQL房屋租赁管理信息系统JDBC(源代码+论文+答辩PPT).zip
ASP+ACCESS期刊稿件处理系统(源代码+初稿论文+终稿论文+系统说明+答辩PPT).zip
VB原创库存管理系统(开题报告+外文翻译+论文正文+源代码+可执行程序).zip
界面友好,难度适中,很适合初中级学者参考研究!
VB计算机自动出卷系统(开题报告+外文翻译+源程序+可执行程序+论文正文+答辩ppt).zip
JSP+access手机销售系统(论文+系统+开题+封面+扉页+需求分析+任务书).zip
java+sql企业固定资产管理系统(论文+系统+开题报告+任务书+中期考核报告+任务书+评语表+答辩PPT).zip
ASP+ACCESS深水蓝文学网站(论文+系统+答辩PPT).zip
vb+access工资管理系统(论文+程序+开题报告+外文翻译+答辩PPT).zip
VB+Access酒店客房管理系统(论文+系统+开题报告+摘要+任务书).zip