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

C 联合体

时间:2017-04-23 23:16:39      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:c 联合体

联合体和结构体最大的区别是:

结构体各个成员都有自己的内存空间

联合体所有的成员共用同一个内存空间,空间的大小取决于所有成员中占用内存空间最大的那个。

放一段代码:

#include <stdio.h>
#include <stdlib.h>
typedef union _m
{
    int c;
    char name[20];
}M;
int main()
{
    system("color 2E");
    printf("联合体 M 占用的内存大小 : %d\n" , sizeof(M));
    return 0;
}

其结果为:

技术分享

实际上可以这么理解 : union在同一时间只能使用其所有成员中的一个成员。

如果使用union , 赋值一个成员 , 因为union中所有的成员都使用同一块内存空间 , 实际上其他成员的内存内容也改了 , 再去使用其他成员的话,值都是乱七八糟的。

本文出自 “Better_Power_Wisdom” 博客,请务必保留此出处http://aonaufly.blog.51cto.com/3554853/1918601

C 联合体

标签:c 联合体

原文地址:http://aonaufly.blog.51cto.com/3554853/1918601

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