>>306
いや、だからそれは違うって。

int *p=NULL;
if (p)
は偽になるが、その理由は「NULLが0だから」じゃないでしょってこと。

処理系の標準へッダでNULLを((void *)1)と定義していたとしても
int *p=NULL;
if (p)
は偽になる。