! (論理否定) 演算子は、オペランドが、0 (false) またはゼロ以外 (true) のいずれに評価されるかを決めます。
オペランドの評価の結果が 0 になる場合は、式の値は 1 (true) になり、
オペランドの評価の結果がゼロ以外の値になる場合は、式の値は 0 (false) になります。
オペランドの評価の結果が
false (0) になる場合は、式の値は true になり、オペランドの評価の結果が true (ゼロ以外)
の値になる場合は、式の値は false になります。
オペランドは、暗黙的に bool に変換されます。そして、結果の型は bool です。
次の 2 つの式は、同じです。
!right; right == 0;
関連参照