++i;
VS
i++;
使用前缀增量或使用后缀增量是否会对给定的两个语句产生影响(除非增加变量,否则不会涉及其他操作)?
答案 0 :(得分:3)
两种情况下的最终结果完全相同。 ++ i和i ++的使用在这方面没有区别。但是,可能存在性能差异;虽然,这些几乎可以忽略不计。
基本上,++ i保证与i ++一样快;但是,i ++并不能保证像++ i一样快。因此,如果您不需要中间值[例如当++ i或i ++是单个语句时],那么更喜欢++ i。大多数常见的编译器可能会优化这种差异,但规范明确了不同的行为和保证。换句话说,i ++可能会做一个额外的不必要的步骤。
// The compiler turns i++ into the following
int temp = i;
i = i + 1;
return temp;
对战:
// The compiler turns ++i into the following
i = i + 1;
return i;
有关此内容的详细参考,请参阅http://fairwaytech.com/2012/03/prefix-vs-postfix-increment-and-decrement-operators-in-c/
答案 1 :(得分:1)
没有。它只是将i的值递增1,就是这样。