指针变量与零值的比较不是应该和NULL进行比较吗

指针变量与0值的比较不是应该和NULL进行比较吗
#include "stdio.h"
int main(void)
{
    int a;
int * p=&a;
a=0;
if(*p==0)
printf("hello");


为什么和0比较也可以

------解决方案--------------------
兄弟:
  你搞错了,if(*p==0) 

   *p 是整形
   p才是指针型。

  NULL在头文件里被宏定义为0了。但是,并不是所有的环境里,都会用0表示空指针,所以,建议大家用NULL