คำตอบของ Charles Bailey ถูกต้อง คำที่ถูกต้องจากมาตรฐาน C ++ คือ (§4.7 / 4): "ถ้าประเภทแหล่งที่มาคือบูลค่าเท็จจะถูกแปลงเป็นศูนย์และค่าจริงจะถูกแปลงเป็นค่าเดียว"
แก้ไข: ฉันเห็นว่าเขาเพิ่มข้อมูลอ้างอิงด้วย - ฉันจะลบสิ่งนี้ในไม่ช้าถ้าฉันไม่ฟุ้งซ่านและลืม ...
Edit2: จากนั้นอีกครั้งเป็นที่น่าสังเกตว่าแม้ว่าค่าบูลีนจะแปลงเป็นศูนย์หรือหนึ่งเสมอฟังก์ชันจำนวนหนึ่ง (โดยเฉพาะจากไลบรารีมาตรฐาน C) จะส่งคืนค่าที่เป็น "บูลีนโดยพื้นฐาน" แต่แสดงเป็นint
s ที่เป็น โดยปกติจะต้องเป็นศูนย์เท่านั้นเพื่อระบุเท็จหรือไม่ใช่ศูนย์เพื่อระบุว่าเป็นจริง ตัวอย่างเช่นฟังก์ชัน is * <ctype.h>
ต้องการเพียงศูนย์หรือไม่ใช่ศูนย์ไม่จำเป็นต้องเป็นศูนย์หรืออย่างเดียว
หากคุณแคสbool
ต์เป็นศูนย์จะแปลงเป็นเท็จและไม่ใช่ศูนย์เป็นจริง (ตามที่คุณคาดหวัง)