Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

++i และ i++ ใน C++ แตกต่างกันอย่างไร?


มีความแตกต่างอย่างมากระหว่างคำต่อท้ายและเวอร์ชันนำหน้าของ ++

  • ในเวอร์ชันนำหน้า (เช่น ++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 หลังจากการเพิ่มขึ้น
  • พิมพ์ค่าเหล่านี้