บทนำ
ผลลัพธ์ของ 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
ประสิทธิภาพ
ประสิทธิภาพขึ้นอยู่กับสถาปัตยกรรมพื้นฐาน ทั้งคู่เพิ่มค่าที่เก็บในหน่วยความจำ Von-Neumann bottleneck เป็นปัจจัยจำกัด
อย่างไรก็ตาม ++i เร็วกว่า i++ นิดหน่อย เพราะ i++ ต้อง copy ค่าก่อนเพิ่ม ในขณะที่ ++i ไม่ต้อง copy บางคอมไพเลอร์อาจ optimize ได้ แต่ไม่ได้มีประสิทธิภาพเสมอไป