A simple concept in the C language is the evaluation of a boolean expression with an if statement. But what if the condition is not a typical relational or boolean expression? In C, it is possible to write:
if (x){ // if x is true or great than zero printf("x is true/has a value/great than zero"); do something; } else { printf("x is false/does not have a value/is zero");
This is straight forward. The opposite can be a bit confusing.
if (!x){ // if x is zero printf("x is false/does not have a value"); do something; } else { printf("x is true/has a value");
Reference:
https://www.eskimo.com/~scs/cclass/notes/sx3c.html