This question already has answers here:
Closed 5 years ago.
What is “!!” in C? [duplicate]
(7个答案)
在C中,两次求反有什么有效的用法?例如,类似于:
据我所知,如果
最后,你将得到
(7个答案)
在C中,两次求反有什么有效的用法?例如,类似于:
if (!!my_cond) {
}
据我所知,如果
!!
是!!my_cond
的话,my_cond
将保证false
为0,否则为1。你什么时候需要用这个? 最佳答案
在您显示它的上下文中,它是无用的,因为值本身的计算结果是0
或1
。
它可以在不做这种“布尔”转换的上下文中使用,例如算术或索引。
size_t zerovalues[2] = { 0, 0, };
for (size_t i = 0; i < N; ++i)
++zerovalues[!!A[i]];
最后,你将得到
A
中zerovalues[0]
的值0的个数和不在zerovalues[1]
中的值的个数08-07 17:04