Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149939
  • 博文数量: 91
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-09 11:40
文章分类
文章存档

2011年(1)

2010年(4)

2009年(86)

我的朋友
最近访客

分类: C/C++

2009-06-12 10:37:55

#include <stdio.h>
void main()
{
    union EXAMPLE
    {
        struct
        {
            int x;int y;
        }in;
        int a;
        int b;
    }e;
    e.a=1;e.b=2;
    e.in.x=e.a*e.b;
    e.in.y=e.a+e.b;
    printf("%d,%d\n",e.in.x,e.in.y);
}

运行结果:4,8

(1)共同体以覆盖的方式共享存储单元。在e.a=1;e.b=2;语句执行后,e.a=e.b=2。故e.in.x=e.a*e.b=2*2=4,这样,e.a=e.b=e.in.x=4,e.in.y=e.a+e.b=8。

阅读(278) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~