Is NULL always false?

Yes. NULL evaluates to false, since C considers any non-zero value true and any zero value false. NULL is essentially the zero address and is treated as such in comparisons, and I believe would be promoted to an int for the boolean check. I would expect that your code is readable to anyone familiar with C although I would probably make the check explicit.

In C and C++ programming, two null
pointers are guaranteed to compare
equal; ANSI C guarantees that any null
pointer will be equal to 0 in a
comparison with an integer type;
furthermore the macro NULL is defined
as a null pointer constant, that is
value 0 (either as an integer type or
converted to a pointer to void), so a
null pointer will compare equal to
NULL.

Ref: http://en.wikipedia.org/wiki/Null_pointer#Null_pointer

Leave a Comment