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

การทำงานของ printf กับตัวดำเนินการ ++ ในภาษา C


การทำงานของ printf กับตัวดำเนินการ ++

ในบางโจทย์อาจพบคำสั่ง printf() ที่มีตัวดำเนินการ ++ อยู่ในพารามิเตอร์ ในข้อสอบแข่งขันมักมีคำถามประเภทนี้เพื่อทายผลลัพธ์ ในส่วนนี้เราจะดูตัวอย่างและพยายามหาคำตอบ

ตัวอย่างโค้ด

#include <stdio.h>

int main() {
    volatile int x = 20;
    printf("%d %d\n", x, x++);
    x = 20;
    printf("%d %d\n", x++, x);
    x = 20;
    printf("%d %d %d ", x, x++, ++x);
    return 0;
}

คอมไพเลอร์ส่วนใหญ่จะประมวลผลพารามิเตอร์ของ printf() จากขวาไปซ้าย ดังนั้นใน printf() แรก พารามิเตอร์สุดท้ายคือ x++ จะทำงานก่อน พิมพ์ 20 แล้วเพิ่มเป็น 21 ต่อมาพิมพ์พารามิเตอร์ก่อนหน้า แสดง 21 สำหรับ ++x จะเพิ่มค่าก่อนพิมพ์ ส่วน x++ จะพิมพ์ค่าก่อนแล้วค่อยเพิ่ม

ผลลัพธ์

21 20
20 20
22 21 21