免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: kernelxu
打印 上一主题 下一主题

空指针究竟指向了内存的哪个地方? [复制链接]

qunying 该用户已被删除
11 [报告]
发表于 2005-05-14 02:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
qunying 该用户已被删除
12 [报告]
发表于 2005-05-14 02:13 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
13 [报告]
发表于 2005-05-14 03:40 |只看该作者

空指针究竟指向了内存的哪个地方?

“memset(u.a, 0, 4); 设a为全0时, 并不能假设 p 是空指针”
谁说这样就能够让p为空指针了?memset里面说了?概念简直一塌糊涂。
qunying 该用户已被删除
14 [报告]
发表于 2005-05-14 03:49 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
15 [报告]
发表于 2005-05-14 09:32 |只看该作者

空指针究竟指向了内存的哪个地方?

原帖由 "FH" 发表:


那说明他就该杀!他的书是垃圾!审稿的人也是饭桶!



上次有个谁来着,说那本书是 <<c/c++ 高质量笑话>;>;.

论坛徽章:
0
16 [报告]
发表于 2005-05-14 09:44 |只看该作者

空指针究竟指向了内存的哪个地方?

我对 if (p) 的看法:

1、(char *)0, (void *)0... 均为所谓的``零指针''

2、在指针上下文 0 会被提升为相应的 ``零指针'',其部表示取决于机器

3、if (p == 0) 是合法的

(p==0) 为指针类型与常数 0 比较,常数 0必须被提升,提升为相应类型的“零指针”(type *) 0

4、if(p) 也是合法的:
因为 if(p) 会被编译器处理为 if (p == 0),然后归结到 3

至于风格的问题,我就不讨论了。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
17 [报告]
发表于 2005-05-14 11:32 |只看该作者

空指针究竟指向了内存的哪个地方?

NULL是编译器处理的,靠上下文判断,概念就是“空”。编译器做的不符合标准的,程序错误的读取或修改(void*)0指向的地址,可能不会造成错误(也可能会,主要看机器结构对绝对0地址的处理方式)。而好的编译器,几乎都有这样的检查,来避免对0地址的读写。(如果你非要把NULL当成 0 地址的话)

论坛徽章:
0
18 [报告]
发表于 2005-05-14 20:55 |只看该作者

空指针究竟指向了内存的哪个地方?

原帖由 "win_hate" 发表:
我对 if (p) 的看法:

1、(char *)0, (void *)0... 均为所谓的``空指针常数''

2、在指针上下文 0 会被提升为相应的 ``空指针常数'',其部表示取决于机器

3、if (p == 0) 是合法的

(p==0) 为指针类型与常..........


同意!
在stdio.h头文件中,NULL被宏定义为0,所以程序在编译时将NULL替换成0,
1、若NULL本身不是被宏定义成0,那么在此时使用NULL就不是表示空指针了,对吗?
2、若在程序中使用了null来表示空指针,因为只有NULL被宏定义为0,所以null不能表示空指针,对吗?
3、若1、2都对的话,是不是可以说标准C语言就是以p==0来判断p为空指针,用p = 0 使p空指针?
4、在指针上下文 0 会被提升为相应的 ``空指针常数'',其内部表示取决于机器
qunying 该用户已被删除
19 [报告]
发表于 2005-05-15 03:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
20 [报告]
发表于 2005-05-15 21:39 |只看该作者

空指针究竟指向了内存的哪个地方?

理解!
谢谢各位指点!   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP