2 u010016581 u010016581 于 2013.10.23 19:52 提问

C语言问题 关于NULL

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

为什么出错???

4个回答

lu2210
lu2210   2013.10.24 09:22
已采纳

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

ll_0520
ll_0520   2013.10.24 10:07

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

u012226625
u012226625   2013.10.24 14:25

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

jinqmao
jinqmao   2013.12.03 14:04

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!