exclamation mark in c
The negation operator (!) simply just reverses the meaning of its operand. The 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). The 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.