| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:共用体的输出值的问题
只看楼主 加入收藏
shenhua2050
Rank: 2
等 级:论坛游民
帖 子:39
专家分:14
注 册:2010-11-23
结帖率:66.67%
收藏
 问题点数:0 回复次数:2 
共用体的输出值的问题
#include<stdio.h>
union student
{
    char i;
    int j;
    float k;
}stu;
main()
{
    stu.i='a';
    printf("%c\n",stu.i);
    printf("%d\n",stu.j);
    printf("%f\n",stu.k);
}
输出是
a
97
0.000000
为什么最后一个是0?  浮点数在内存中是怎样占用内存?  麻烦大侠们指导一下!!!  谢谢了!!!
2011-01-09 21:25
shenhua2050
Rank: 2
等 级:论坛游民
帖 子:39
专家分:14
注 册:2010-11-23
收藏
得分:0 
怎么没人回答啊  我顶!!!
2011-01-10 20:56
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
反正最根本的一点,浮点数的强制转换并不是内存直接拷贝,编译器会将浮点数对应的部分做对应的赋值;而union中的不同类型浮点数是共用同一块内存的,不管以什么浮点数类型去读这块内存,这块内存的值都是一样的。
网上转载

小代码,大智慧
2011-01-10 21:18
快速回复:共用体的输出值的问题
数据加载中...
 
   



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

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