猿问

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

for(int i = 0; i< 10; i++){}

int i =0;
for(; i< 10; i++){}

请问这两个运行速度是第一个快吗?为什么?

qq_阿篮_0
浏览 2809回答 2
2回答

onemoo

没有区别。for 的小括号中的第一部分只会在一开始时初始化这个 i。所以这不涉及“每次迭代时都生成临时变量”的问题,这两种方式是一样的。而且,如果这个 i 作为迭代 index 只在 for 循环中使用的话,更推荐用第一种写法。这样 i 算是在 for 的作用域中,不会影响到外部。再有,程序员几乎不用考虑这种程度的所谓“优化”。一方面是现代编译器早已经很智能了,即便存在某些编码细节上的影响,编译器也都会自动优化掉。另一方面,采用更具效率的算法对运算速度的提升要远比使用某些过时的“优化技巧”来得大。
随时随地看视频慕课网APP
我要回答