什么 !在值之前初始化变量时做
What ! do when initializing a variable before the value
我正在做一些随机的事情,我想出了 int a = !3;
,当我输出它的值时,我期待一个错误,但它给了我一个 0。
为什么会发生这种情况,! 在这个例子中意味着什么?
!3 是一个表达式,它的计算结果为 bool 类型。
在此示例中,它的计算结果为 false。
bool 可以转换为 int,这在您将其分配给一个时会自动发生。
false 的 int 表示是'0',而 true 是'1'。
即"negates"的值。 non-zero 变成 0
,0
变成 1
。
!
是 BOOLEAN NOT
运算符,即 !true == false
和 !false == true
。在 C 和 C++ 中,每个非零值在与布尔运算符一起使用时都被视为 true
。而 false
在数值上是 0
。所以 3
被视为 true
和 !3 = !true = false = 0
.
我正在做一些随机的事情,我想出了 int a = !3;
,当我输出它的值时,我期待一个错误,但它给了我一个 0。
为什么会发生这种情况,! 在这个例子中意味着什么?
!3 是一个表达式,它的计算结果为 bool 类型。 在此示例中,它的计算结果为 false。
bool 可以转换为 int,这在您将其分配给一个时会自动发生。 false 的 int 表示是'0',而 true 是'1'。
即"negates"的值。 non-zero 变成 0
,0
变成 1
。
!
是 BOOLEAN NOT
运算符,即 !true == false
和 !false == true
。在 C 和 C++ 中,每个非零值在与布尔运算符一起使用时都被视为 true
。而 false
在数值上是 0
。所以 3
被视为 true
和 !3 = !true = false = 0
.