| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 385 人关注过本帖
标题:小小程序问题~
只看楼主 加入收藏
线一根
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2011-12-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
小小程序问题~
#include <stdio.h>
union pw
{
    int i;char ch[2];
}a;
main()
{
    a.ch[0]=13;
    a.ch[1]=0;printf("%d\n",a.i);
}

为什么程序运行完,输出会是13~~真的不明白,看书也不真的~
搜索更多相关主题的帖子: include 
2011-12-09 23:25
zy_space
Rank: 5Rank: 5
等 级:职业侠客
帖 子:163
专家分:364
注 册:2011-11-14
收藏
得分:14 
a.ch[0]=13
这里的13是ASIC码值里面的13,对应的是一个相应的字符(具体是什么记不清楚了,自己去查表吧),和定义的union类型的变量无关。在C中char类型的变量可以说是比较小的int类型的变量(C++中不是)。但是i和c用的是同一段内存,既i的值也是13。printf("%d\n",a.i);通过这一语句把i的打印出来

何必等待?梦在今朝
2011-12-09 23:33
线一根
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2011-12-9
收藏
得分:0 
谢谢~知道了~
2011-12-09 23:39
快速回复:小小程序问题~
数据加载中...
 
   



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

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