Восклицательный знак - логический символ отрицания C. Это означает, что дайте мне логическое противоположное значение. Логическим значением является true
или false
, которые 1
или 0
в языке C.
В C, if
операторы выполняют свои условные операторы, если аргумент правда.
if (a)
означает, что a
истинно (т. Е. Не ноль)
if (!a)
означает, что a
ложно (т. Е. 0)
Следовательно:
if (a)
совпадает с if (a != 0)
if (!a)
совпадает с if (a == 0)
Иногда you ' Вы увидите код, который использует два восклицательных знака подряд "!!
"
Например:
int a = !!b;
То есть a
будет ТОЛЬКО 0
или 1
, независимо от значения b
.
Если b
ЛЮБОЕ ненулевое значение, оператор !
будет воспринимать его как истинное true
, который он обрабатывает так же, как 1
Итак:
!0 == 1
!1 == 0
!52 == 0
!25692 == 0
Второй !
снова выполняет булеву инверсию, поэтому:
!!0 == 0
!!1 == 1
!!52 == 1
!!25692 == 1