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

ความแตกต่างระหว่าง prefix และ postfix operators ใน C++

ใน prefix version (เช่น ++i) ค่าของ i ถูกเพิ่มขึ้น และค่าของ expression คือค่าใหม่ของ i กล่าวคือ เพิ่มก่อนแล้วค่อยกำหนดค่าให้ expression

ใน postfix version (เช่น i++) ค่าของ i ถูกเพิ่มขึ้น แต่ค่าของ expression คือค่าเดิมของ i กล่าวคือ กำหนดค่าให้ expression ก่อนแล้วค่อยเพิ่มตัวแปร

มาดูโค้ดเพื่อเข้าใจดีขึ้น -

ตัวอย่าง

#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

ทำไมถึงเป็นเช่นนี้? มาดูรายละเอียด -

  • Initialize x เป็น 3
  • Assign y ค่าจากการ evaluate expression x++ คือ ค่าของ x ก่อนเพิ่ม แล้วค่อยเพิ่ม x
  • เพิ่ม x แล้ว assign z ค่าจากการ evaluate expression ++x คือ ค่าของ x หลังเพิ่ม
  • พิมพ์ค่าเหล่านี้