| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 461 人关注过本帖
标题:帮忙给出解释 ,谢谢!
只看楼主 加入收藏
阶段丶成长
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:41
专家分:32
注 册:2013-11-11
结帖率:87.5%
收藏
已结贴  问题点数:17 回复次数:7 
帮忙给出解释 ,谢谢!
#include  <stdio.h>
int main(  )
{   
union stu                         /* 定义共用体类型 */
{
   int  num;
      float  score;
      char   *name;
}student;
student.num=1010;
student.score=80;            
student.name="zhangsan";           
printf("%d\n", student.num);  
return 0;
}

输出结果shi:4349984
搜索更多相关主题的帖子: include return 
2014-05-10 17:40
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:5 
你这是共用体,共享同一内存,同一时刻只有一个值有效。最终有效的是:student.name="zhangsan"; 。所以输出错误。这是共用体最基本的定义。你还是先看看书吧。
2014-05-10 18:00
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:5 
看起来楼主本来是想写个结构,或者这个题本身是为了强调结构和共用的区别。
struct stu                         /* 定义共用体类型 */
{
   int  num;
      float  score;
      char   *name;
}student;
把 union 换成 struct 后,就各是各了。
2014-05-10 18:58
阶段丶成长
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:41
专家分:32
注 册:2013-11-11
收藏
得分:0 
回复 2 楼 kwxx
我知道这是共用体问题,但是为什么出现的是一个数值,而且还是固定不变的···

每一个阶段,都是一次不可或缺的成长···
2014-05-12 16:15
阶段丶成长
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:41
专家分:32
注 册:2013-11-11
收藏
得分:0 
回复 3 楼 top398
我需要的是就题论题,而不是换成结构体···

每一个阶段,都是一次不可或缺的成长···
2014-05-12 16:15
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
回复 4 楼 阶段丶成长
换台电脑再试试,看还是一样的数值吗?

总有那身价贱的人给作业贴回复完整的代码
2014-05-12 16:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
最终输出的是"zhangsan"这个字符串在内存中的地址 也就是说

    printf("%d\n", student.num);
    printf("%d\n", "zhangsan");

这俩其实是一样的

PS 默认情况下 同样的字符串地址是一样的
2014-05-12 16:38
top398
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:427
专家分:857
注 册:2014-5-2
收藏
得分:0 
如2楼解释过的,输出的是字符常量的地址。
该常量固定位于可执行文件的某一位置,运行时系统也将其装载到固定的用户地址空间。
楼主也可照6楼的方法试试看。
2014-05-12 16:41
快速回复:帮忙给出解释 ,谢谢!
数据加载中...
 
   



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

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