| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1372 人关注过本帖
标题:谁能解释这个???
只看楼主 加入收藏
musicyxy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2004-8-14
收藏
得分:0 
指向同一个地址为什么输出结果会不同??

不要说他的储存方式不同!

2005-03-24 22:29
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
不说存储方式不同,说什么,
你想想,一个用两个字节,一个用四个字节,怎么读,怎么显示???

差点把你忘了...
2005-03-25 08:36
suyongtao
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:33
帖 子:8674
专家分:127
注 册:2004-11-6
收藏
得分:0 
你们版主怎么不来是不是嫌分太少了?!@?#!?231

面朝大海,春暖花开!
2005-03-25 15:01
zhtmark
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2005-3-25
收藏
得分:0 
他们指向的地方一样,但是,空间大小不同.这是问题的关键.

zhtmark QQ:451361060
2005-03-25 22:06
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
类似这样的问题(好像是printf()参数的问题)我记得论坛很久很久以前曾经讨论过.
经过几天的激烈讨论我仍然记得大家都达成了共通----讨论这样的东西对我们根本就没用,除非你想学编译原理

以后大家在写程序的时候一定要避免类似这样的问题发生就可以了,在这里不是想让大家一知半解,实在是对大家没什么帮助.
如果有精力,还不如多写点其他的程序,何苦要死专这个牛角尖不放呢?

淘宝杜琨
2005-03-26 01:46
风淦觉月
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-3-24
收藏
得分:0 
我认为,那个题的错误应在于:
 int *p1 开始是int 型的,令之指向i,这是没错的.
不过一旦语句:p2=(float *)p1这就出问题了.
因为:这句就等价于:
float *p1;
p1=p2;
那是当然错了.
请记住:指针是没有强制转换的!!!!!!!!!!!!!!!!!

2005-03-26 09:30
dongfz
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-3-8
收藏
得分:0 
值得研究!

是金子就一定会发亮吗?高手也需要低调!!!!
2005-03-26 10:15
Jorbo
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2004-9-8
收藏
得分:0 
谁能解释这个??? 有这样一段程序: void main( void ) { int i=3,*p1; float a=1.5,*p2; p1=&i;p2=&a; p2=(float *)p1; printf("%d,%d\n",*p1,*p2); } 我觉得输出应该是3,3,可是程序输出结果为:3,0。 为什么???????????? 我认为:p1、p2都是指针变量。在 p1=&i 中,p1放了i的地址。在 p2=(float *)p1 中,把i的地址变成一个浮点数 放到p2, 于是 *p2 就是这个浮点数指向的单元的值。而这个浮点数是未知的,它指向的单元也未曾被赋值。故*p2为0.

2005-03-26 11:08
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
如果按照楼上的思路,那
int main()
{
int i=3,*p1=&i;
long int a=5,*p2=&a;
    p2=(long int *)p1;
    printf("%d,%d\n",*p1,*p2);
}
应该是输出什么??

我觉得天使没说错,问题肯定出在浮点数如何在[计算机中存储]和[printf()]如何处理的方面上.

淘宝杜琨
2005-03-26 12:16
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
神,你真是知音呀!!!
呵呵,我就是这个意思!!
其中主要是printf();函数的问题!!!
参数的问题!!!

差点把你忘了...
2005-03-26 13:58
快速回复:谁能解释这个???
数据加载中...
 
   



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

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