| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 326 人关注过本帖
标题:一个共同体的问题
收藏  订阅  推荐  打印
ronaldfree
Rank: 1
等级:新手上路
帖子:36
积分:496
注册:2008-8-2
一个共同体的问题

#include"stdio.h"
main()
{  union {int a[2];
          long b;
          char c[4];
          }s;
  s.a[0]=0x39;
  s.a[1]=0x38;
  printf("%lx\n",s.b);
  printf("%c\n",s.c[0]);
}

请问输出结果是什么?
2008-8-28 18:17
flyue
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1713
积分:17800
注册:2006-6-20

自己编译运行不就知道了么?

大家一起来编程吧!
2008-8-28 19:19
smltq
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:317
积分:3844
注册:2008-1-21

支持````
2008-8-28 19:31
xxwpk007
Rank: 2
等级:注册会员
帖子:51
积分:758
注册:2007-7-29

多看看书,认真理解下联合类型
2008-8-28 19:44
ronaldfree
Rank: 1
等级:新手上路
帖子:36
积分:496
注册:2008-8-2

运行了,得不到自己希望的结果。所以才来问嘛
2008-8-29 11:55
wgd123pl
Rank: 1
来自:湖北
等级:新手上路
帖子:11
积分:226
注册:2008-8-16
和你一样

按顺序来答案是:

380039

9

以后要多动动手啊

兄弟

不要太赖了

这回我帮你了
2008-8-29 12:56
liotta
Rank: 1
等级:新手上路
帖子:13
积分:238
注册:2008-8-29

linux下是:
39
9
2008-8-29 13:06
ronaldfree
Rank: 1
等级:新手上路
帖子:36
积分:496
注册:2008-8-2

引用:
wgd123pl 在 2008-8-29 12:56 的发言:

按顺序来答案是:

380039

9

以后要多动动手啊

兄弟

不要太赖了

这回我帮你了
谢谢啊!答案我也知道。就是不知道后一个答案为什么是9?
2008-8-30 10:46
ronaldfree
Rank: 1
等级:新手上路
帖子:36
积分:496
注册:2008-8-2

引用:
liotta 在 2008-8-29 13:06 的发言:

linux下是:
39
9
前一个答案为什么是39呢?应该是否380039啊!这是为什么呢?
2008-8-30 10:47
hoodlum1980
Rank: 3Rank: 3
来自:浙江大学
等级:中级会员
帖子:248
积分:3294
注册:2008-2-24

和你用的平台也有关系,比如说吧,在16位系统下面,char 1byte, int 2byte, long 4byte,
union {int a[2];
          long b;
          char c[4];
          }s
所以在16位系统上,这个结构如下分布:
-------------------------------------------------------
字节:      0         1           2          3   
------------------------------------------------------
       a[0]低8位  a[0]高8位   a[1]低8位   a[1]高8位
           c[0]     c[1]         c[2]         c[3]
-----------------------------------------------------
(值)     0x39     0x00        0x38         0x00
-----------------------------------------------------
打印b的时候,就是0x00380039
打印c[0],你打印的是ascii码为0x39的那个字符:即字符'9'
2008-8-30 11:42
共有 325 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054275 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved