An integral constant expression that evaluates to zero, or such an expression cast to type void *, is converted to a pointer called the “null pointer.” This pointer is guaranteed to compare unequal to a pointer to any valid object or function (except for pointers to based objects, which can have the same offset and still point to different objects).