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

ความแตกต่างระหว่าง ++i และ i++ ในภาษา C

ใน C ตัวดำเนินการ ++ และ -- เรียกว่า increment/decrement operators เป็น unary operators ต้องการ operand เดียว ทั้ง prefix (++i) และ postfix (i++) ให้ผลลัพธ์เท่ากันหากใช้เดี่ยวๆ

i = 5; i++; printf("%d", i);  // i = 6
i = 5; ++i; printf("%d", i);  // i = 6

แตกต่างกันเมื่อใช้ร่วมกับตัวดำเนินการกำหนดค่า (=) เนื่องจากลำดับความสำคัญ (precedence)

Postfix: j = i++

= มี precedence สูงกว่า postfix ++ กำหนดค่า i ให้ j ก่อน แล้วค่อยเพิ่ม i → j=5, i=6

Prefix: j = ++i

Prefix ++ มี precedence สูงกว่า = เพิ่ม i ก่อน แล้วค่อยกำหนดให้ j → i=6, j=6

ตัวอย่าง

#include <stdio.h>
int main() {
    int i = 5, j;
    j = i++;
    printf("\nafter postfix increment i=%d j=%d", i, j);
    i = 5;
    j = ++i;
    printf("\nafter prefix increment i=%d j=%d", i, j);
    return 0;
}

ผลลัพธ์

after postfix increment i=6 j=5
after prefix increment i=6 j=6