C ++程序中的i ++和++ i在性能上有区别吗?

i ++和++ i的有效结果相同。唯一的区别是,i ++在分配i后会增加i的值,而对于++ i,它会先增加i的值,然后分配其值。我们可以在以下代码中看到区别。

范例程式码

#include<iostream>
using namespace std;
int main() {
   int x = 3, y, z;
   y = x++;
   z = ++x;
   cout << x << ", " << y << ", " << z;
   return 0;
}

输出结果

5, 3, 5

现在,问题来了,当他们执行相同的任务但顺序不同时,那么是否存在性能问题或两者相同?

好吧,这些操作的性能高度依赖于基础架构。一种是存储在内存中的增量值,这意味着在两种情况下,冯-诺依曼瓶颈基本上都是限制因素。

尽管可以说++ i比i ++快一点。i ++在递增之前会先获取i值的本地副本,而++ i则不会。有时,某些编译器会尽可能优化代码。但是这种优化并不总是有效的,或者不是所有的编译器都可以做到这一点。