一、共用体概念
和结构体类似,也是构造类型的数据结构
在进行某些算法时,需要使几种不同类型的变量存放到同一内存单元中,几个变量所使用的空间相互重叠。(共用体所有成员占有同一段地址空间。)
二、共用体定义和使用
#include<stdio.h>
#pragma warning(disable:4996)
typedef struct stu1
{
int age;
int ch;
int score;
}Stu1;
typedef union stu2
{
int age;
int ch;
int score;
}Stu2;
int main()
{
Stu1 s1;
Stu2 s2;
printf(sizeof(s1));//12
printf(sizeof(s2));//4
return 0;
}
共用体所占字节大小由占最大字节的成员决定。
共用体只能给一个成员赋值。所有成员的值都是一致的。
#include<stdio.h>
#pragma warning(disable:4996)
typedef union data
{
unsigned int a;
unsigned int b;
}Data;
int main()
{
Data temp;
temp.b = 0xffffffff;
printf("b = %x\n", temp.b);//0xffffffff
printf("a = %x\n", temp.a);//0xffffffff
temp.a = 0x55;
printf("b = %x\n", temp.b);//0x55
printf("a = %x\n", temp.a);//0x55
return 0;
}