NULLを再定義しない限りは保証はある。
NULLと0は同義だ。

変なCPUがあったとして、アセンブラ上とかで不正なポインタ(つまりNULL)に0以外のアドレス
0xa0000000 みたいなのを割り当ててたとしても、C言語上ではNULLポインタは常に 0 と等価だ。