| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2818 人关注过本帖
标题:int * p = (int*)1000;
只看楼主 加入收藏
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 
int 16位下占2个字节,32位下占4个字节

地址1000到地址2000差1000个字节

1000个字节 32位下 是250个int型数据

指针相减 的值不是他们之间差多少个 字节 而是他们之间差多少个指针所指向的int型数据

p-q 差250个int数据..值-250




2007-09-02 13:15
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 
以下是引用我为C痴在2007-9-2 12:38:09的发言:

那编译的结果为什么会是-250呢??

由于地址1000到地址2000是以字节来进行计算的,即地址1000加上1000个字节就是地址2000
用(int *)强制转换两地址并求差以后,也就是求出地址1000和地址2000之间的以int数据类型为标识的数据个数。

p - q实际可以化为 ((int)p - (int)q) / sizeof(int)
16位的编译器通常int的长度为2个字节,而32位的编译器int为4个字节。

即p - q有两个答案,一个是-500,一个是-250


我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2007-09-02 13:27
zhzhmiao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-7-27
收藏
得分:0 
同意啊~~~~  呵呵
2007-09-02 13:34
我为C痴
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-31
收藏
得分:0 
好的,,弄清楚了  谢谢大家!!
2007-09-02 13:51
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
收藏
得分:0 
这里的减是指针之间的减,而指针之间的减是必须以指针的类型(类型所占的字节数)来计算的!~
由于整型的字节数是4,而p-q=-1000
-1000/4=-250;
结果便出来了!~ ^_^

C斗士~~~fighting!!!!
2007-09-02 14:03
xiaopi_zj
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-9-1
收藏
得分:0 

晓得了 谢谢拉

2007-09-03 11:34
qh_tsuan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-6
收藏
得分:0 
是地址中的随机数吗!
多运行两次就明白了
2007-09-06 11:44
lantianye
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-6
收藏
得分:0 
编译出的结果,p是1000,q是2000,但p-q却成-250了,q-p是250~
搞不懂怎么回事了!
2007-09-06 19:25
xutaoneu
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2007-2-12
收藏
得分:0 
我运行的结果是-500
2007-09-06 21:10
迷茫小生
Rank: 1
等 级:新手上路
帖 子:9
专家分:4
注 册:2014-4-28
收藏
得分:0 
以下是引用aoaoaoao在2007-9-2 13:15:55的发言:

int 16位下占2个字节,32位下占4个字节<BR><BR>地址1000到地址2000差1000个字节 <BR><BR>1000个字节 32位下 是250个int型数据<BR><BR>指针相减 的值不是他们之间差多少个 字节 而是他们之间差多少个指针所指向的int型数据<BR><BR>p-q 差250个int数据..值-250 <BR><BR><BR><BR><BR>

学到东西了。正在进入指针这片雷区啊。感谢大家无私分享啊。

行己路,不怕雾。\n编程问题尽迷茫,但论坚持有小生。
2014-05-24 11:25
快速回复:int * p = (int*)1000;
数据加载中...
 
   



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

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