ในตัวดำเนินการ 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