| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:关于union一个问题
取消只看楼主 加入收藏
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
结帖率:96.67%
收藏
已结贴  问题点数:10 回复次数:4 
关于union一个问题
     以你的程序为例子,现在已经开辟了一个16位的空间,然后我们假定现在空间还没有被赋值,为:
     00000000 00000000
    那么在运行完代码
    a.x[0] = 10;
    a.x[1] = 1;
    之后,16位的空间变为:
     00000110 00000001
这个解释没有看懂,怎么变成这样的?
程序代码:
#include <stdio.h>
union
{
int i;
char x[2];
}a;
void main()
{
a.x[0] = 10;
a.x[1] = 1;
printf("%d",a.i);
}

搜索更多相关主题的帖子: union 
2010-10-24 14:51
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 2楼 wujieru
会的话,说说哦。我不懂
2010-10-24 15:20
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 5楼 BlueGuy
额,能帮我把我说的这个题分析下?
2010-10-24 15:49
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 5楼 BlueGuy
a[0]=10,a[1]=1是怎么转换为00000110 00000001 若是二进制的话,前面应该是00001010啊?
2010-10-24 16:07
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 8楼 BlueGuy
额。。谢谢。我这从网上找的
2010-10-24 16:40
快速回复:关于union一个问题
数据加载中...
 
   



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

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