Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132416
  • 博文数量: 75
  • 博客积分: 1485
  • 博客等级: 上尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-11 20:57
文章分类
文章存档

2011年(1)

2010年(15)

2009年(59)

我的朋友

分类: C/C++

2009-05-30 14:17:07

#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。

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