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.
!right; right == 0;