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

อะไรคือความแตกต่างระหว่าง ++i และ i++ ใน c?


ในตัวดำเนินการ C, ++ และ -- เรียกว่าตัวดำเนินการเพิ่มและลด เป็นโอเปอเรเตอร์ unary ที่ต้องการตัวถูกดำเนินการเพียงตัวเดียว ดังนั้น ++ และ -- ตัวดำเนินการสามารถปรากฏก่อนหรือหลังตัวถูกดำเนินการด้วยเอฟเฟกต์เดียวกัน

นั่นหมายความว่าทั้ง i++ และ ++i จะเทียบเท่ากัน

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

และ

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

ทั้งสองจะทำให้ i=6.

อย่างไรก็ตาม เมื่อใช้นิพจน์การเพิ่มขึ้นพร้อมกับตัวดำเนินการมอบหมาย ลำดับความสำคัญของตัวดำเนินการจะปรากฏเป็นภาพ

i=5;
j=i++;

ในกรณีนี้ ลำดับความสำคัญของ =จะสูงกว่า postfix ++ ดังนั้น ค่าของ i ถูกกำหนดให้กับ i ก่อนที่จะเพิ่มค่า i ที่นี่ j กลายเป็น 5 และฉันกลายเป็น 6

i=5;
j=++i;

ในกรณีนี้ ลำดับความสำคัญของคำนำหน้า ++ มากกว่า =โอเปอเรเตอร์ ดังนั้นฉันจะเพิ่มก่อนและค่าที่เพิ่มขึ้นถูกกำหนดให้กับ j ที่นี่ i และ 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 ("\n after prefix increment i=%d j=%d",i,j);
   return 0;
}

ผลลัพธ์คือ

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

No