「ゼロと評価される汎整数定数式を空ポインタ定数と呼ぶ。」 (JIS X 3014:2003 4.10)
X 3010:2003 6.3.2.3にもほぼ同じような規定がある。
ただしこちらはそれをvoid*にキャストした式も空ポインタ定数に含めている。

'\0'はCではint、C++ではcharになるが共に整数型であることに変わりはなく、
ptr !='\0'はptrがポインタ型でもptrがヌルポインタか比較する有効な式になる。