【C】一篇文章搞懂C语言的自定义类型之共用体的入门到入坟

文章目录

  • 自定义类型
    • 共用体(联合)类型
      • 共用体(联合)类型的定义
      • 共用体(联合)的内存计算
      • 数据的说明

自定义类型

自定义类型一共只有三种:
1.结构体类型
2.枚举类型
3.共用体(联合)类型

共用体(联合)类型

同一段内存单元存放不同类型的变量
下图就是三种不同类型的数据,共享同一片内存,他们的起始地址都是一样的。

【C】一篇文章搞懂C语言的自定义类型之共用体的入门到入坟_第1张图片

共用体(联合)类型的定义

联合类型的声明:
union Test{
	char a;
	short b;
	int c;
};
union Un{
	char c;
	int i;
};

联合类型变量的声明:
union Test t;
union Un u;

共用体(联合)的内存计算

联合的成员是共用同一块内存空间的,这个联合类型的所占内存至少是其所占内存最大的成员变量的大小(因为联合至少能够保存最大的那个成员)

下图的a、b、c三个变量的起始地址一致,共用体大小是Test成员中最大的那个变量int型的大小4字节

【C】一篇文章搞懂C语言的自定义类型之共用体的入门到入坟_第2张图片

数据的说明

共用体中只能存储一份数据,这份数据在不同类型的成员变量下通过不同的方式展现出来的数据不一样。

例如:十进制数字65存储到共用体中,在内存中是二进制存储,十六进制展示为0x41,在char类型的a角度来看:65是ASCII码对应的’A’字符,对于int型c和short型b的角度来看:65就是十进制的65。

【C】一篇文章搞懂C语言的自定义类型之共用体的入门到入坟_第3张图片

你可能感兴趣的:(C,c语言)