ทำไมมันจึงเป็นที่scanf()ต้องการlใน " %lf" เมื่ออ่านdoubleเมื่อprintf()สามารถใช้ " %f" โดยไม่คำนึงว่าอาร์กิวเมนต์เป็นdoubleหรือfloat?
รหัสตัวอย่าง:
double d;
scanf("%lf", &d);
printf("%f", d);
&โอเปอเรเตอร์unary ผลลัพธ์ของการดำเนินการนั้นจะเป็นตัวชี้ไปยังตำแหน่งที่เก็บของตัวแปรในหน่วยความจำ scanfมันเป็นตัวชี้ที่ถูกส่งผ่านไปยัง