C语言----共用体
共用体:
union //联合--共用体
早期的时候,计算机的硬件资源有限,
能不能让多个成员变量 公用同一块空间
使用方式 类似 结构体 --- 也是构造类型
struct 结构体名
{
成员变量名
};
union 共用体名
{
成员变量名
}; //表示构造了一个共用体类型
//定义变量
//定义指针
//定义数组
//做函数形参
//做函数返回值类型
注意:
1.共用体类型的大小 = 最大的成员的大小
2.共用体初始化,只能写一个值,这个值是给第一个成员变量的值
3.共用体成员的访问方式 和 结构体一样
4.共用体因为公用同一块空间
赋值时,后赋值的会影响前面赋值的结果
5.用途
a.节省空间
校园人员管理系统
struct student
{
char name[20];
int sno;
float score;
};
struct teacher
{
char name[20];
int tno;
float salary;
};
struct member
{
char name[20];
int no;
union
{
float salary;
float score;
}data;
};
struct member s;
printf("score = %f\n",s.data.score);
struct member t;
printf("score = %f\n",s.data.salary);
b.数据转换
192.168.0.59 //ip地址 --- 网络环境中 ---实际对应是一个32位的数值
#include <stdio.h>
union Ip
{
unsigned char ip[4];
unsigned int iip;
};
int main(int argc, const char *argv[])
{
union Ip d = {192,168,0,59};
printf("ip = %#x\n",d.iip);
return 0;
}