一、共用体(Union)
1.1 定义与特点
共用体是一种特殊的数据类型,允许不同成员共享同一块内存空间。定义方式与结构体类似,但内存分配策略不同。
union Data { int i; float f; char str[20]; };
核心特性:
-
所有成员共享内存,大小为最大成员的大小
-
任一时刻只能存储一个成员的值
-
修改一个成员会影响其他成员的值
1.2 应用场景
1. 节省内存空间
// 校园人员管理系统示例 struct Member { char name[20]; int no; union { float salary; // 教师工资 float score; // 学生分数 } data; };
2. 数据转换
// IP地址转换示例 #include <stdio.h> union Ip { unsigned char ip[4]; unsigned int iip; }; int main() { union Ip d = {192,168,0,59}; printf("IP整数形式: %#x\n", d.iip); // 输出0xc0a8003b return 0; }
二、枚举(Enum)
2.1 定义与使用
枚举用于定义一组命名的整数常量,提高代码可读性。
enu