C++ 引入 bool 關鍵字作為原生邏輯類型,取值僅有 true(真)與 false(假)。在主流編譯器(如 MSVC)中佔用 1 字節,但標準僅保證至少能容納 0/1 兩種值。
bool flag; // 未初始化,值不確定
bool ok = true; // 直接初始化
bool done = false;
true → 1,false → 0此規則適用於所有算術類型、指針、枚舉等。
#include
using namespace std;
int main() {
bool result = true;
cout << result << endl; // 輸出 1
result = 100; // 非零轉為 true
cout << result << endl; // 仍輸出 1
result = 0;
cout << result << endl; // 輸出 0
// 指針轉換
int* p = nullptr;
cout << bool(p) << endl; // 輸出 0 (false)
p = new int(5);
cout << bool(p) << endl; // 輸出 1 (true)
delete p;
return 0;
}
true/false 而非 1/0,語義更清晰。if (count != 0) 而非 if (count) 可提高可讀性(視團隊風格)。掌握 bool 的轉換規則,能有效避免條件判斷中的隱式轉換陷阱,編寫更健壯的邏輯代碼。