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