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 information