1

我很了解后缀和前缀递增/递减的工作原理。但我的问题是,在 for 循环中,哪个更高效或更快,哪个更常用,为什么?

字首?

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

还是后缀?

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

4 回答 4

1

对于ints 在这种情况下没有区别——编译器将在大多数优化级别下发出相同的代码(我敢说即使在没有优化的情况下)。

在其他上下文中,例如 C++ 类实例,存在一些差异。

于 2011-09-25T05:37:52.927 回答
0

两种方法都可以,在这种情况下,一种方法并不比另一种更有效或更快。人们使用 ++1 很常见,可能是因为在 K&R 和其他有影响力的书籍中使用了 ++1。

于 2011-09-25T05:39:31.473 回答
0

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

于 2011-09-25T05:39:38.813 回答
0

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

于 2011-09-25T05:46:33.000 回答