|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 谁能解释这个???
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1372
人关注过本帖
标题:
谁能解释这个???
只看楼主
加入收藏
musicyxy
等 级:
新手上路
帖 子:120
专家分:0
注 册:2004-8-14
第
11
楼
收藏
得分:0
指向同一个地址为什么输出结果会不同??
不要说他的储存方式不同!
2005-03-24 22:29
举报帖子
使用道具
赠送鲜花
天使预备役
等 级:
论坛游民
威 望:
3
帖 子:670
专家分:10
注 册:2004-4-6
第
12
楼
收藏
得分:0
不说存储方式不同,说什么,
你想想,一个用两个字节,一个用四个字节,怎么读,怎么显示???
差点把你忘了...
2005-03-25 08:36
举报帖子
使用道具
赠送鲜花
suyongtao
等 级:
版主
威 望:
33
帖 子:8674
专家分:127
注 册:2004-11-6
第
13
楼
收藏
得分:0
你们版主怎么不来是不是嫌分太少了?!@?#!?231
面朝大海,春暖花开!
2005-03-25 15:01
举报帖子
使用道具
赠送鲜花
zhtmark
等 级:
新手上路
帖 子:100
专家分:0
注 册:2005-3-25
第
14
楼
收藏
得分:0
他们指向的地方一样,但是,空间大小不同.这是问题的关键.
zhtmark QQ:451361060
2005-03-25 22:06
举报帖子
使用道具
赠送鲜花
神vLinux飘飘
来 自:浙江杭州
等 级:
贵宾
威 望:
91
帖 子:6140
专家分:217
注 册:2004-7-17
第
15
楼
收藏
得分:0
类似这样的问题(好像是printf()参数的问题)我记得论坛很久很久以前曾经讨论过.
经过几天的激烈讨论我仍然记得大家都达成了共通----讨论这样的东西对我们根本就没用,除非你想学编译原理
以后大家在写程序的时候一定要避免类似这样的问题发生就可以了,在这里不是想让大家一知半解,实在是对大家没什么帮助.
如果有精力,还不如多写点其他的程序,何苦要死专这个牛角尖不放呢?
淘宝杜琨
2005-03-26 01:46
举报帖子
使用道具
赠送鲜花
风淦觉月
等 级:
新手上路
帖 子:19
专家分:0
注 册:2005-3-24
第
16
楼
收藏
得分:0
我认为,那个题的错误应在于:
int *p1 开始是int 型的,令之指向i,这是没错的.
不过一旦语句:p2=(float *)p1这就出问题了.
因为:这句就等价于:
float *p1;
p1=p2;
那是当然错了.
请记住:指针是没有强制转换的!!!!!!!!!!!!!!!!!
2005-03-26 09:30
举报帖子
使用道具
赠送鲜花
dongfz
等 级:
新手上路
帖 子:40
专家分:0
注 册:2005-3-8
第
17
楼
收藏
得分:0
值得研究!
是金子就一定会发亮吗?高手也需要低调!!!!
2005-03-26 10:15
举报帖子
使用道具
赠送鲜花
Jorbo
等 级:
新手上路
帖 子:68
专家分:0
注 册:2004-9-8
第
18
楼
收藏
得分: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飘飘
来 自:浙江杭州
等 级:
贵宾
威 望:
91
帖 子:6140
专家分:217
注 册:2004-7-17
第
19
楼
收藏
得分: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
举报帖子
使用道具
赠送鲜花
天使预备役
等 级:
论坛游民
威 望:
3
帖 子:670
专家分:10
注 册:2004-4-6
第
20
楼
收藏
得分:0
神,你真是知音呀!!!
呵呵,我就是这个意思!!
其中主要是printf();函数的问题!!!
参数的问题!!!
差点把你忘了...
2005-03-26 13:58
举报帖子
使用道具
赠送鲜花
22
2/3页
1
2
3
快速回复:
谁能解释这个???
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.026070 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved