Jawaban Charles Bailey benar. Kata-kata yang tepat dari standar C ++ adalah (§4.7 / 4): "Jika jenis sumbernya bool, nilai false diubah menjadi nol dan nilai true diubah menjadi satu."
Sunting: Saya melihat dia menambahkan referensi juga - Saya akan segera menghapus ini, jika saya tidak terganggu dan lupa ...
Sunting2: Kemudian lagi, mungkin perlu dicatat bahwa sementara nilai Boolean itu sendiri selalu dikonversi ke nol atau satu, sejumlah fungsi (terutama dari pustaka standar C) mengembalikan nilai yang "pada dasarnya Boolean", tetapi direpresentasikan sebagai int
s yang biasanya hanya perlu nol untuk menunjukkan salah atau bukan nol untuk menunjukkan benar. Misalnya, fungsi is * <ctype.h>
hanya memerlukan nol atau bukan nol, tidak harus nol atau satu.
Jika Anda mentransmisikannya ke bool
, nol akan dikonversi menjadi salah, dan bukan nol menjadi benar (seperti yang Anda harapkan).