I'm just curious, but can you point me to an implementation of C that doesn't treat (void*)0 as NULL?
To put it another way, if you have a literal zero in a pointer context, the compiler will replace it with the machine's representation of a null pointer, which may or may not be a machine word with all bits zero.
I think that's right...
But: can you name a platform where a null pointer is not represented by zeros in binary?