Câu trả lời của Charles Bailey là đúng. Cách diễn đạt chính xác từ tiêu chuẩn C ++ là (§4.7 / 4): "Nếu loại nguồn là bool, giá trị false được chuyển thành 0 và giá trị true được chuyển thành một."
Chỉnh sửa: Tôi thấy anh ấy cũng đã thêm tài liệu tham khảo - Tôi sẽ xóa nó ngay thôi, nếu tôi không bị phân tâm và quên ...
Chỉnh sửa2: Sau đó, một lần nữa, có lẽ đáng chú ý là mặc dù bản thân các giá trị Boolean luôn chuyển đổi thành 0 hoặc một, một số hàm (đặc biệt là từ thư viện chuẩn C) trả về các giá trị "về cơ bản là Boolean", nhưng được biểu diễn dưới dạng ints thông thường chỉ yêu cầu bằng 0 để biểu thị sai hoặc khác 0 để cho biết đúng. Ví dụ, hàm is * trong<ctype.h> chỉ yêu cầu 0 hoặc khác 0, không nhất thiết là 0 hoặc 1.
Nếu bạn truyền giá trị đó thành bool, số 0 sẽ chuyển thành false và khác 0 thành true (như bạn mong đợi).