什么 !在值之前初始化变量时要做

时间:2019-06-18 18:05:02

标签: c++ operator-keyword

我在做一些随机的事情,我想出了int a = !3;,当我输出该值时,我期待一个错误,但是却得到了 0

为什么会发生这种情况?在该示例中意味着什么?

3 个答案:

答案 0 :(得分:4)

!BOOLEAN NOT运算符,即!true == false!false == true。在C和C ++中,与布尔运算符一起使用时,每个非零值都将被视为truefalse的数字为0。因此3被视为true!3 = !true = false = 0

答案 1 :(得分:1)

!3是一个表达式,其计算结果为布尔型。 在此示例中,其结果为false。

可以将

bool强制转换为一个int,将其分配给int时会自动发生。 false的int表示为'0',而true为'1'。

答案 2 :(得分:0)

“否定”值。任何非零的内容都变成0,而0变成1