【发布时间】:2014-03-06 20:16:47
【问题描述】:
在 C 中两次否定的有效用途是什么?例如,类似:
if (!!my_cond) {
}
据我了解,!! 将保证 !!my_cond 如果 my_cond 为 false 则为 0,否则为 1。你什么时候需要使用这个?
【问题讨论】:
-
我明白它的作用,我只是想弄清楚为什么人们想要“将非零值转换为 1”。我确定有有效的用途,我只是在问其中一些情况是什么。
-
@BlackJack:将其用作二元素数组、标志或位数组中的数组索引,如:
array[!!x]、flags |= !!x << 4、bits[pos/8] |= !!x << pos%8...
标签: c logical-operators