c/types/NULL

The macro is an implementation-defined null pointer constant, which may be
 * an integer constant expression with the value
 * an integer constant expression with the value 0 cast to the type

A null pointer constant may be converted to any pointer type; such conversion results in the null pointer value of that type.