for循环中++ i和i ++之间的区别

时间:2011-09-25 05:33:47

标签: post-increment pre-increment

我很清楚后缀和前缀增量/减量是如何工作的。但我的问题是,在for循环中,哪个更高效或更快,哪个更常用,为什么?

前缀?

for(i = 0; i < 3; ++i) {...}

或后缀?

for(i = 0; i < 3; i++) {...}

4 个答案:

答案 0 :(得分:1)

对于这个上下文中的int没有区别 - 编译器将在大多数优化级别下发出相同的代码(即使在没有优化的情况下,我也敢说)。

在其他情况下,与C ++类实例一样,存在一些差异。

答案 1 :(得分:0)

在这种情况下,两种方法都有效,一种效率不高于另一种方式。人们常常使用++ 1,也许是因为这是K&amp; R和其他有影响力的书籍所使用的。

答案 2 :(得分:0)

在这种特殊情况下,没有一个实际上比另一个更有效。我希望++i更常用,因为对于其他类型的迭代,例如迭代器对象,它会更有效。

答案 3 :(得分:0)

在我看来,在for循环中选择前缀或后缀取决于语言本身。在c ++中,前缀更有效且更一致。因为在前缀类型中,编译器不需要复制未增加的值。除了你的值不能是一个整数,如果你的值是一个对象,那么这个前缀类型更强大。