在for循环中,i++和++i的区别是什么?

4

3
许多重复问题:https://dev59.com/l3I-5IYBdhLWcg3whYsr许多重复问题,涉及C语言中++x和x++的使用时机。这两个运算符都可以用于变量自增,但它们在表达式中的行为略有不同。++x会先自增变量的值,然后返回自增后的值,而x++则是返回变量的原始值,然后再自增变量的值。因此,如果你只需要变量的自增值,那么使用++x更加高效。 - Greg Hewgill
3个回答

5

完全没有区别。增量操作是单独的语句,因此无论是前缀递增还是后缀递增都没有影响。


1

只有当优化器不够聪明,无法意识到即使你指定了 i++,它仍然可以执行 ++i 时,才会产生影响。(在现代编译器中这种情况不太可能发生。)

你可以通过程序员使用 ++i 而非 i++ 的方式来辨别他们是否为老手,因为曾经的编译器远没有现代编译器那么聪明。


这与年龄无关,更多地与在C++中接触到非平凡迭代器有关。 - Steve Jessop
1
我一定是个非常老的程序员了,因为我喜欢编写代码以便结果是有意义的而不是偶然的。 - Jon Reid

1

后置和前置递增运算符主要在于你是否关心复合语句中某个变量的值。作为for循环的第三个子句的独立递增语句不受你选择前置或后置的影响。

int j = i++;int j = ++i; 是非常不同的。你想要i的当前值还是想要递增后的i的值?在for循环示例中,只要递增就可以了,你并不关心具体的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接