标签:
运行下面的程序,并解释运行结果。#include <iostream>
using namespace std;
union un
{
    int i;
    char c[4];
};
int main()
{
    union un x;
    x.c[0]='A';
    x.c[1]='B';
    x.c[2]='C';
    x.c[3]='D';
    cout<<x.i<<endl;
    return 0;
}
#include <iostream>
using namespace std;
union un
{
    int i;
    char c[4];
};
int main()
{
    un x;
    x.c[0]='A';
    x.c[1]='B';
    x.c[2]='C';
    x.c[3]='D';
    cout<<x.c[2]<<endl;
    return 0;
}
通过watch窗观察:
结构体的引入,用户可以方便定义新的数据类型,用成员变量来存储事物不同方面的特性。但是结构体每一个成员变量均需要占用一定的存储空间,与实际的要求存在一定的差距。引入的新的自定义数据类型共用体(union),很像结构体类型,有自己的成员变量,但是所有的成员变量占用同一段内存空间。对于共用体变量,在某一时间点上,只能存储其某一成员的信息。
结构体是由不同数据类型组成的一个结构,存储空间是所有成员需要的空间的总和,结构成员是同时存在的。而共同体则是不同数据类型共享一个存储空间,空间的大小是能容纳共同体成员中的最大者。共同体成员的值不可能同时存在。
@ Mayuko
标签:
原文地址:http://blog.csdn.net/mayuko2012/article/details/44085309