A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 西域男孩刚 中级黑马   /  2015-9-4 23:45  /  1301 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天上课,int *p=NULL,但是int *p=0,是错误的,为啥啊?

10 个回复

倒序浏览
0在一定程度上代表的是一个数值,但是NULL 在一定程序上代表的是空!
二者具体来说区别不大
回复 使用道具 举报 1 0
首先还是要明白int *p代表一个什么意思;
通常我们会这样写
int a=0;
int *p=&a; // 表示指针变量p指向数据类型为int 类型的a的存储空间
所以p代表的值是存储空间,也就是存储地址。
而int *p=0中的0是一个int类型的数值,所以是不能赋值给p的
回复 使用道具 举报 1 0
15325501970 来自手机 中级黑马 2015-9-5 08:15:20
板凳
int表示数据类型,*p表示指针指向指针变量p的首地址,int *p=NULL可以理解为这个地址是空的,int   *p=0可以理解为你在为一个指针进行赋值,指针不能赋值的,指针变量才能进行赋值,估计你写int *(*p)=0可也。
回复 使用道具 举报
15325501970 来自手机 中级黑马 2015-9-5 08:17:33
报纸
我也是新手,楼上纯属个人理解,可能是错误的,望楼主试试,再回复一下我是对是错,谢谢
回复 使用道具 举报
西域男孩刚 来自手机 中级黑马 2015-9-5 08:56:29
地板
weicongcing 发表于 2015-9-5 02:06
首先还是要明白int *p代表一个什么意思;
通常我们会这样写
int a=0;

哦哦!这下清楚了
回复 使用道具 举报
int *p=NULL,等于int *p,p = NULL;地址为空,并不能简单的赋值为0,需要赋值为NULL
回复 使用道具 举报
哦,涨姿势
回复 使用道具 举报
长知识了
回复 使用道具 举报
学习了.
回复 使用道具 举报
这个叫什么来着  野指针
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马