码迷,mamicode.com
首页 > 其他好文 > 详细

第二十四周项目7-读懂“共同体”

时间:2015-03-05 19:33:46      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

运行下面的程序,并解释运行结果。
#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窗观察:

技术分享

so:

结构体的引入,用户可以方便定义新的数据类型,用成员变量来存储事物不同方面的特性。但是结构体每一个成员变量均需要占用一定的存储空间,与实际的要求存在一定的差距。引入的新的自定义数据类型共用体(union),很像结构体类型,有自己的成员变量,但是所有的成员变量占用同一段内存空间。对于共用体变量,在某一时间点上,只能存储其某一成员的信息。
结构体是由不同数据类型组成的一个结构,存储空间是所有成员需要的空间的总和,结构成员是同时存在的。而共同体则是不同数据类型共享一个存储空间,空间的大小是能容纳共同体成员中的最大者。共同体成员的值不可能同时存在。

@ Mayuko

第二十四周项目7-读懂“共同体”

标签:

原文地址:http://blog.csdn.net/mayuko2012/article/details/44085309

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!