มีความแตกต่างอย่างมากระหว่างคำต่อท้ายและคำนำหน้าเวอร์ชัน ++
-
ในเวอร์ชันนำหน้า (เช่น ++i) ค่าของ i จะเพิ่มขึ้น และค่าของนิพจน์จะเป็นค่าใหม่ของ i โดยพื้นฐานแล้วมันจะเพิ่มขึ้นทีละขั้นก่อนแล้วจึงกำหนดค่าให้กับนิพจน์
-
ในเวอร์ชัน postfix (เช่น 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
ดูรายละเอียดกันเลย
-
เริ่มต้น x ถึง 3
-
กำหนดค่า y ที่เราได้รับโดยการประเมินนิพจน์ x++ กล่าวคือ ค่าของ x ก่อนการเพิ่มขึ้นแล้วเพิ่มขึ้น x
-
เพิ่มขึ้น x จากนั้นกำหนดค่า z ที่เราได้รับโดยการประเมินนิพจน์ ++x กล่าวคือ ค่าของ x หลังจากการเพิ่มขึ้น
-
พิมพ์ค่าเหล่านี้