标题:求助 (short*)NULL + 10 = ?
只看楼主
anifa
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-11
 问题点数:0 回复次数:16 
求助 (short*)NULL + 10 = ?
(short*)NULL + 10 = ?
搜索更多相关主题的帖子: short NULL 
2007-10-19 13:53
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 

刚从CSDN看到,=10*sizeof(short)


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 14:21
anifa
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-11
得分:0 
能详细说明下不?可以发答案发: anifa_lover@163.com

2007-10-19 18:19
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
是刚才你问的吧
是不是你?
刚才解答的不行吗?

倚天照海花无数,流水高山心自知。
2007-10-19 19:14
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 
以下是引用anifa在2007-10-19 18:19:58的发言:
能详细说明下不?可以发答案发: anifa_lover@163.com

1,NULL,一般来说,都是这么定义的,#define NULL 0,也就是说NULL就是0
2、(short*),这个是强制类型转换,结果就是把0转换成了一个指针,而且是short型的指针
3、指针的加法,比如这两句int *p;p++;我们都知道p的值实际上增加了sizeof(int),回到这道题,既然(short*)NULL是指针,那(short*)NULL+10就等于(short*)NULL+10*sizeof(short)
4、这样结果就出来了,NULL=0不用管了,那结果就是10*sizeof(short)

不得不说这道题出的很有意思


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 20:37
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 

补一句
经过强制类型转换是不会改变原来的地址的.
NULL 是个指针,其地址就是0,被强制转换为short*,再移动10*(sizeof(short))个单位
所以得到的地址是20.


倚天照海花无数,流水高山心自知。
2007-10-19 22:03
zxc1998
Rank: 1
等 级:新手上路
威 望:1
帖 子:133
专家分:0
注 册:2007-3-21
得分:0 

这道题出得很高明

2007-10-19 22:20
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 

6楼说的不太严密,
NULL本来不是指针,而是define定义的,属于编译预处理,编译的时候就会直接替换成0,这道题其实直接写(short*)0+10也是一样的。
NULL的地址在哪我不大清楚,应该不是0,不过NULL的值是0,被强制转换成指针后,他的值还是0(当然,他的地址也没变),指针的值也就是指针指向的地址

[此贴子已经被作者于2007-10-19 22:24:16编辑过]


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 22:23
zxc1998
Rank: 1
等 级:新手上路
威 望:1
帖 子:133
专家分:0
注 册:2007-3-21
得分:0 
NULL 等于 0,当把NULL赋值给指针变量时,这个指针就是指向了0地址,如果取他的内容,就是内存0地址中的值。
2007-10-19 22:35
wzhings
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-1-16
得分:0 
学习了...

在我的眼里,这个世界是由0和1组成的!~
2007-10-19 22:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-179028-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.149231 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved