黑马程序员技术交流社区

标题: NULL和0有啥区别啊? [打印本页]

作者: 西域男孩刚    时间: 2015-9-4 23:45
标题: NULL和0有啥区别啊?
今天上课,int *p=NULL,但是int *p=0,是错误的,为啥啊?
作者: qq350106106    时间: 2015-9-4 23:49
0在一定程度上代表的是一个数值,但是NULL 在一定程序上代表的是空!
二者具体来说区别不大
作者: weicongcing    时间: 2015-9-5 02:06
首先还是要明白int *p代表一个什么意思;
通常我们会这样写
int a=0;
int *p=&a; // 表示指针变量p指向数据类型为int 类型的a的存储空间
所以p代表的值是存储空间,也就是存储地址。
而int *p=0中的0是一个int类型的数值,所以是不能赋值给p的
作者: 15325501970    时间: 2015-9-5 08:15
int表示数据类型,*p表示指针指向指针变量p的首地址,int *p=NULL可以理解为这个地址是空的,int   *p=0可以理解为你在为一个指针进行赋值,指针不能赋值的,指针变量才能进行赋值,估计你写int *(*p)=0可也。

作者: 15325501970    时间: 2015-9-5 08:17
我也是新手,楼上纯属个人理解,可能是错误的,望楼主试试,再回复一下我是对是错,谢谢
作者: 西域男孩刚    时间: 2015-9-5 08:56
weicongcing 发表于 2015-9-5 02:06
首先还是要明白int *p代表一个什么意思;
通常我们会这样写
int a=0;

哦哦!这下清楚了
作者: yibyli    时间: 2015-9-5 12:10
int *p=NULL,等于int *p,p = NULL;地址为空,并不能简单的赋值为0,需要赋值为NULL
作者: 小笼包    时间: 2015-9-5 19:54
哦,涨姿势
作者: 七爷上课前    时间: 2015-9-5 19:56
长知识了
作者: lxszl    时间: 2015-9-5 21:10
学习了.
作者: Music_棍棍    时间: 2015-9-5 21:25
这个叫什么来着  野指针




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2