The ! (logical negation) operator determines whether the operand evaluates to 0 (false) or nonzero (true).
The expression yields the value 1 (true) if the operand evaluates
to 0, and yields the value 0 (false) if the operand
evaluates to a nonzero value.
The expression yields the value true if the operand evaluates to
false (0), and yields the value false if the operand evaluates to
true (nonzero). The operand is implicitly converted to bool,
and the type of the result is bool.
The following two expressions are equivalent:
!right; right == 0;
Related References