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则不会。有时,某些编译器会尽可能优化代码。但是这种优化并不总是有效的,或者不是所有的编译器都可以做到这一点。