我很了解后缀和前缀递增/递减的工作原理。但我的问题是,在 for 循环中,哪个更高效或更快,哪个更常用,为什么?
字首?
for(i = 0; i < 3; ++i) {...}
还是后缀?
for(i = 0; i < 3; i++) {...}
我很了解后缀和前缀递增/递减的工作原理。但我的问题是,在 for 循环中,哪个更高效或更快,哪个更常用,为什么?
字首?
for(i = 0; i < 3; ++i) {...}
还是后缀?
for(i = 0; i < 3; i++) {...}
对于int
s 在这种情况下没有区别——编译器将在大多数优化级别下发出相同的代码(我敢说即使在没有优化的情况下)。
在其他上下文中,例如 C++ 类实例,存在一些差异。
两种方法都可以,在这种情况下,一种方法并不比另一种更有效或更快。人们使用 ++1 很常见,可能是因为在 K&R 和其他有影响力的书籍中使用了 ++1。
在这种特殊情况下,实际上没有一个比另一个更有效。我希望++i
更常用,因为这对于其他类型的迭代(如迭代器对象)会更有效。
在我看来,在 for 循环中选择前缀或后缀取决于语言本身。在 c++ 中前缀更有效和一致。因为在前缀类型中,编译器不需要复制未递增的值。另外你的值一定不能是整数,如果你的值是一个对象比这个前缀类型更强大。