可能重复:
Is there a performance difference between i++ and ++i in C++?
我看到很多地方用于这样的循环:
for(i = 0; i < size; ++i){ do_stuff(); }
而不是(我和大多数人使用的)
for(i = 0; i < size; i++){ do_stuff(); }
++i
应该与i++
完全相同(除非运算符超载差异)。我看到它用于正常的for循环和STL迭代循环。
为什么他们使用++i
代替i++
?任何编码规则都建议这样做吗?
编辑:关闭原因我发现它与Is there a performance difference between i++ and ++i in C++?完全相同
答案 0 :(得分:3)
简单地说:++x is pre-increment and x++ is post-increment that is in the first x is incremented before being used and in the second x is incremented after being used.
示例代码:
int main()
{
int x = 5;
printf("x=%d\n", ++x);
printf("x=%d\n", x++);
printf("x=%d\n", x);
}
O / P:
x=6
x=6
x=7
答案 1 :(得分:2)
这两个确实是相同的,因为第三部分是在循环的每次迭代之后执行的,并且它的返回值不用于任何东西。这只是一个偏好问题。