在浏览基础设施代码时,我发现了这一点:
return !!(fin.flags & FIN_ACCEPT);
这是否具有连续两个逻辑符号以外的含义?
答案 0 :(得分:4)
!
是合乎逻辑的否定。 !!
是两次应用的逻辑否定。
它通常用于将布尔表达式值规范化为0
或1
。
答案 1 :(得分:1)
用于将数值转换为布尔值。例如:
a = 5;
a = !!a;
!(!一)---> !(!5)----> !(0)----> 1
a
的值为1。