When you set up a null pointer, printing the address will usually show it's pointing to memory address 0 (or 0x0 or 00000000 or what have you).
I'm pretty sure this is an abstraction and you're not actually pointing to that address, it's just a way of representing a null pointer. Is it the C++ language that's responsible for this abstraction or is it compiler specific?