C语言问题 关于NULL

#include
void main()
{
int i =10;
int *p=&i;
*p = NULL;
int a[3];
a[0] = i;
printf("%d\n",a[0]);
}

为什么出错???

*p = NULL;这里错了
赋值时将指针赋给整数,未作类型转换
这里*p等同于i,你把*p换成i也是一样的结果,null不能赋值给int的
(有用别忘了给个顶哦~)

要让p指针指向空这样写p = NULL;,要让p指针指向的值(也就是i)为0这样写*p = 0;

应该把*p=NULL的*号去掉,只有在初始化时这样写!

指针用法错误,语句说明:
int *p=&i;(指针p是i的地址)
*p = NULL;(相当于i=NULL,对int i来说是非法语句,导致错误)