1The negation operator (!) simply just reverses the meaning of its operand.
2
3The operand or the expression must be of arithmetic or pointer type. But the operand/result of expression is implicitly converted to data type bool (boolean 0 means false, Non zero means True).
4
5The result is true if the converted operand is false; the result is false if the converted operand is true. The result is of type bool.