在 C++ 中,bool
类型用于表示真(true)或假(false)
以下是一些常见的 C++ 数据类型及其与 bool
类型的对比:
int
, long
等)转换为 bool
时,0 值被视为假(false),而非零值被视为真(true)。int a = 0;
bool b = static_cast<bool>(a); // b 为 false
int c = 42;
bool d = static_cast<bool>(c); // d 为 true
float
, double
等)转换为 bool
时,0.0 值被视为假(false),而非零值被视为真(true)。float e = 0.0f;
bool f = static_cast<bool>(e); // f 为 false
double g = 3.14;
bool h = static_cast<bool>(g); // h 为 true
char
)转换为 bool
时,字符值为 0 的情况下被视为假(false),其他字符值被视为真(true)。char i = '\0';
bool j = static_cast<bool>(i); // j 为 false
char k = 'A';
bool l = static_cast<bool>(k); // l 为 true
int*
, char*
等)转换为 bool
时,空指针(nullptr)被视为假(false),非空指针被视为真(true)。int* m = nullptr;
bool n = static_cast<bool>(m); // n 为 false
int o = 42;
int* p = &o;
bool q = static_cast<bool>(p); // q 为 true
总之,在 C++ 中,bool
类型与其他数据类型的对比主要取决于它们在转换过程中的值。通常情况下,0 值或空指针被视为假(false),而非零值或非空指针被视为真(true)。