| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 759 人关注过本帖
标题:共同体问题,敬请搞手指教!!!!
只看楼主 加入收藏
xhl986213688
Rank: 2
等 级:论坛游民
帖 子:27
专家分:32
注 册:2011-9-2
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:6 
共同体问题,敬请搞手指教!!!!
#include<stdio.h>
main(){
    union u_type
        { int i;
         char ch;
         float a;
        }temp;
    temp.i=266;printf("%d",temp.ch);
}
运行结果为什么会是10????
搜索更多相关主题的帖子: 共同体 
2011-10-06 17:32
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:4 
回复 楼主 xhl986213688
好好看书,书上有对共用体的描述。再不明白就需要从头从变量类型那块学起

总有那身价贱的人给作业贴回复完整的代码
2011-10-06 17:43
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
收藏
得分:4 
ascii字符编码128个
266%128=10
so  temp.ch的ascii值为10
2011-10-07 13:41
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 ileelsai
跟ascii码没关系

总有那身价贱的人给作业贴回复完整的代码
2011-10-07 14:03
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:4 
回复 楼主 xhl986213688
所谓共用体,说白了,就是同一块内存,里面的数据,用不同的变量取出来,就是不同的值。
如题:
    union u_type
        { int i;
         char ch;
         float a;
        }temp;
    temp.i=266;printf("%d",temp.ch);
    此union长度为4,在内存中占用4个byte。

    int型数据266,在内存中为: 00001010 00000001 00000000 00000000

    因此,当作int型占4个字节,为266;
    char型占一个字节,为 00001010,也就是10;
2011-10-10 10:43
从C出发
Rank: 2
等 级:论坛游民
帖 子:6
专家分:34
注 册:2011-10-6
收藏
得分:4 
LS正解
2011-10-10 13:26
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:4 
路过

惟我独行...
2011-10-10 13:32
快速回复:共同体问题,敬请搞手指教!!!!
数据加载中...
 
   



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

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