3 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
您可以这样想象:
!(!(a))
如果您一步一步做,这很有意义
result = !42; //Result = 0
result = !(!42) //Result = 1 because !0 = 1
这将返回1任何数字(-42、4.2f等),但只有0时会返回
result = !0; //Result = 1
result = !(!0) //result = 0
元芳怎么了
TA贡献1798条经验 获得超7个赞
你是对的。这是两个不。要了解为什么要这样做,请尝试以下代码:
#include <stdio.h>
int foo(const int a)
{
return !!a;
}
int main()
{
const int b = foo(7);
printf(
"The boolean value is %d, "
"where 1 means true and 0 means false.\n",
b
);
return 0;
}
它输出The boolean value is 1, where 1 means true and 0 means false. 如果删除!!,则输出The boolean value is 7, where 1 means true and 0 means false.
- 3 回答
- 0 关注
- 480 浏览
添加回答
举报
0/150
提交
取消