搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 谁能解释这个???
标题:
谁能解释这个???
只看楼主
lntuzjc
等 级:
新手上路
帖 子:54
专家分:0
注 册:2005-3-23
楼主
问题点数:0 回复次数:21
谁能解释这个???
有这样一段程序:
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。
为什么????????????
搜索更多相关主题的帖子:
解释
2005-03-23 14:02
coloar123
等 级:
新手上路
帖 子:111
专家分:0
注 册:2005-1-6
第
2
楼
得分:0
這個是類型強制轉換p2=(float *)p1;所產生的數據丟失和變動
两耳不闻窗外事,专心只读圣贤书
2005-03-23 14:21
coloar123
等 级:
新手上路
帖 子:111
专家分:0
注 册:2005-1-6
第
3
楼
得分:0
比如
#include <stdio.h>
void main( void )
{
int i=3,*p1;
float a=1.5,*p2;
p1=&i;p2=&a;
printf("%d,%d\n",*p1,*p2);
}
它所輸出的*p2就變成0
两耳不闻窗外事,专心只读圣贤书
2005-03-23 14:25
lntuzjc
等 级:
新手上路
帖 子:54
专家分:0
注 册:2005-3-23
第
4
楼
得分:0
有问题啊!
你举的例子好像与我的那个不太一样。
你的例子中,是把float型的数,按照整数格式输出,当然就是0了!
可我那个问题是:p1,p2指向的内存空间是一样的,那么,取出来的值不也应该一样吗?
_____________________________________________________________________________
比如
#include <stdio.h>
void main( void )
{
int i=3,*p1;
float a=1.5,*p2;
p1=&i;p2=&a;
printf("%d,%d\n",*p1,*p2);
}
它所輸出的*p2就變成0
2005-03-23 14:30
coloar123
等 级:
新手上路
帖 子:111
专家分:0
注 册:2005-1-6
第
5
楼
得分:0
是無論你定義的是指針或者變量,隨它類型的被強制轉換,會產生一定的數據丟失後者錯誤
两耳不闻窗外事,专心只读圣贤书
2005-03-23 18:33
ljzh_77
等 级:
新手上路
帖 子:20
专家分:0
注 册:2005-3-23
第
6
楼
得分:0
我觉得5楼楼主说的有理。
2005-03-23 19:10
lntuzjc
等 级:
新手上路
帖 子:54
专家分:0
注 册:2005-3-23
第
7
楼
得分:0
我不是十分认可你的解释。你的意思是说:所有的类型转换都会发生数据丢失或者错误?那么,如果这是一道选择题,那么你会选中输出结果是3,0这个答案吗?
2005-03-24 00:26
coloar123
等 级:
新手上路
帖 子:111
专家分:0
注 册:2005-1-6
第
8
楼
得分:0
話不是這麽說
我的意思是強制類型轉換是不安全的方式
两耳不闻窗外事,专心只读圣贤书
2005-03-24 14:07
天使预备役
等 级:
论坛游民
威 望:
3
帖 子:670
专家分:10
注 册:2004-4-6
第
9
楼
得分:0
这不应该说是强制转换的问题,而是你的指针地址已经转变!
最后p1,p2指的是同一个起始地址(整型两个字节,浮点数四个字节),但因为整型数和浮点数的存储方式不一样才会出现这样的问题!!!
[此贴子已经被作者于2005-3-24 15:43:48编辑过]
差点把你忘了...
2005-03-24 15:42
C世界
等 级:
新手上路
帖 子:16
专家分:0
注 册:2005-3-19
第
10
楼
得分:0
能不能说
int *p1和float *p是两个完全不同的地址.而且它们各自分配的地址也不同?
2005-03-24 18:11
22
1/3页
1
2
3
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-13878-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.887271 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved