bool k='A';
VS输出中显示截断,“=” :char到bool,可是不都是一个字节吗??
你是坚坚的学生吧
bool类型的值只有true和false,底层实现是用0表示false,1表示true
对于下面代码,字符'a'(ASCII值为97)赋给bool类型变量b时,b中值是1,而不是97,因此发生截断
int main()
{
char c = 'a';
bool b = 'a';
}
c$ = 0
b$ = 1
main PROC
$LN3:
sub rsp, 24
mov BYTE PTR c$[rsp], 97 ; 00000061H
mov BYTE PTR b$[rsp], 1
xor eax, eax
add rsp, 24
ret 0
main ENDP
整数、浮点、无作用域 (C++11 起)枚举、指针和成员指针类型的纯右值,可转换成 bool 类型的纯右值。
零值(对于整数、浮点和无作用域 (C++11 起)枚举)、空指针值和空成员指针值变为 false。所有其他值变为 true
都是一个字节就不发生截断了吗
你身体的体积和一个行李箱体积一样
把你塞行李箱里不发生截断吗