if statement integer

same, the

if (foobar) 

means foobar not zero so whether it is positive or negative doesn't matter, it is still not zero


negative or positive. Anything that's not a 0 is a true value in if

Also, Consider a negative number: -1

-1 in C internally is represented as: 0xFFFFFFFF, in which case, it would be a positive number if I cast it to unsigned integer.

But after the advent of C99 standard compilers, I suggest you use <stdbool.h> instead. Makes the guessing work a lot less:

Read here about stdbool.h