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