คำถามติดแท็ก printf

"printf" เป็นฟังก์ชันทั่วไปสำหรับเอาต์พุตที่จัดรูปแบบ C และภาษาอื่น ๆ อีกมากมายมีฟังก์ชันที่เกี่ยวข้องทั้งหมด ใช้แท็กนี้เฉพาะในกรณีที่คำถามเกี่ยวข้องโดยตรงกับ "printf" หรือฟังก์ชันที่เกี่ยวข้อง

10
ทำไม printf (“% f”, 0); ให้พฤติกรรมที่ไม่ได้กำหนด?
คำสั่ง printf("%f\n",0.0f); พิมพ์ 0. อย่างไรก็ตามคำสั่ง printf("%f\n",0); พิมพ์ค่าสุ่ม ฉันรู้ว่าฉันกำลังแสดงพฤติกรรมบางอย่างที่ไม่ได้กำหนด แต่ฉันไม่สามารถหาสาเหตุได้โดยเฉพาะ ค่าทศนิยมที่บิตทั้งหมดเป็น 0 ยังคงใช้ได้floatโดยมีค่าเป็น 0 floatและintมีขนาดเท่ากันบนเครื่องของฉัน (หากเกี่ยวข้องกัน) เหตุใดการใช้ลิเทอรัลจำนวนเต็มแทนที่จะเป็นลิเทอรัลจุดลอยตัวจึงprintfทำให้เกิดพฤติกรรมนี้ ปล. พฤติกรรมเดียวกันนี้สามารถมองเห็นได้ถ้าฉันใช้ int i = 0; printf("%f\n", i);

9
'\ 0' และ printf () ใน C
ในหลักสูตรเบื้องต้นของ C ฉันได้เรียนรู้ว่าในขณะที่การจัดเก็บสตริงจะถูกเก็บไว้ด้วยตัวละคร null \0เมื่อสิ้นสุดมัน แต่ถ้าฉันต้องการที่จะพิมพ์สตริงพูดprintf("hello")แม้ว่าฉันจะพบว่ามันไม่ได้จบลงด้วย\0คำสั่งต่อไปนี้ printf("%d", printf("hello")); Output: 5 แต่นี่ดูเหมือนจะไม่สอดคล้องกันเท่าที่ฉันรู้ว่าตัวแปรเช่นสายอักขระถูกเก็บไว้ในหน่วยความจำหลักและฉันเดาว่าในขณะที่พิมพ์บางอย่างมันอาจถูกเก็บไว้ในหน่วยความจำหลักแล้วทำไมจึงแตกต่างกัน
21 c  printf  stdout  c-strings 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.