快捷导航

关于for循环声明int i的位置

for(int i = 0; i< 10; i++){}int i =0;for(; i< 10; i++){}请问这两个运行速度是第一个快吗?为什么?

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

没有区别。
for 的小括号中的第一部分只会在一开始时初始化这个 i。所以这不涉及“每次迭代时都生成临时变量”的问题,这两种方式是一样的。
而且,如果这个 i 作为迭代 index 只在 for 循环中使用的话,更推荐用第一种写法。这样 i 算是在 for 的作用域中,不会影响到外部。


再有,程序员几乎不用考虑这种程度的所谓“优化”。一方面是现代编译器早已经很智能了,即便存在某些编码细节上的影响,编译器也都会自动优化掉。另一方面,采用更具效率的算法对运算速度的提升要远比使用某些过时的“优化技巧”来得大。
回复

使用道具 举报

可能感兴趣的问答

发新帖
TA的信息
  • 会员所属: 注册会员
  • 认证信息: 邮箱认证手机认证
  • 微信访问
  • 手机APP