网站源码哪个好,免费申请激活码,网站标题特效,风险地区查询最新#x1f4ac; 欢迎讨论#xff1a;在阅读过程中有任何疑问#xff0c;欢迎在评论区留言#xff0c;我们一起交流学习#xff01; #x1f44d; 点赞、收藏与分享#xff1a;如果你觉得这篇文章对你有帮助#xff0c;记得点赞、收藏#xff0c;并分享给更多对C语言感兴… 欢迎讨论在阅读过程中有任何疑问欢迎在评论区留言我们一起交流学习 点赞、收藏与分享如果你觉得这篇文章对你有帮助记得点赞、收藏并分享给更多对C语言感兴趣的朋友 文章目录 枚举Enum枚举类型的定义 枚举的优点枚举的使用 联合共用体Union联合的定义联合类型的声明联合变量的定义联合的特点联合的使用示例 枚举与联合的对比总结 枚举Enum
枚举顾名思义就是将可能的取值一一列举。
在现实生活中很多事物的取值范围是有限的可以使用枚举来定义例如
一周的七天星期一到星期日。性别男、女、保密。月份12个月。
枚举类型的定义
enum Day // 星期
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
};enum Sex // 性别
{MALE,FEMALE,SECRET
};enum Color // 颜色
{RED,GREEN,BLUE
};在以上定义的 enum Day、enum Sex、enum Color 中{} 内的内容是枚举类型的可能取值也叫枚举常量。
枚举常量默认从 0 开始依次递增 1但也可以自定义初始值如下
enum Color // 颜色
{RED 1,GREEN 2,BLUE 4
};枚举的优点
我们可以使用 #define 定义常量为什么非要使用枚举
枚举的优点包括
增加代码的可读性和可维护性相较于 #define枚举具有类型检查功能更加严谨防止命名污染封装便于调试使用方便一次可以定义多个常量
枚举的使用
enum Color // 颜色
{RED 1,GREEN 2,BLUE 4
};enum Color clr GREEN; // 只能用枚举常量赋值保证类型安全注意 避免直接使用枚举常量的整数值赋值给枚举变量否则可能出现类型不匹配问题。 联合共用体Union
联合的定义
联合类型的变量也包含一系列的成员不同之处在于所有成员共用同一块存储空间因此联合也被称为共用体。
联合类型的声明
union Un
{char c;int i;
};联合变量的定义
union Un un;联合的特点
共用同一块内存 联合中的所有成员共享同一块存储空间大小由最长的成员决定。 节省内存 由于所有成员共用同一块空间联合适用于节省存储的场景。 只能存储一个成员的值 由于所有成员共用一块内存在某一时刻只能存储一个成员的值存储新值会覆盖之前的值。
联合的使用示例
#include stdio.hunion Data
{int i;float f;char str[20];
};int main()
{union Data data;data.i 10;printf(data.i: %d\n, data.i);data.f 220.5;printf(data.f: %f\n, data.f);strcpy(data.str, Hello);printf(data.str: %s\n, data.str);return 0;
}在上述代码中data 变量存储 int、float、char 三种类型的数据但由于它们共用同一块内存每次存储新的值会覆盖先前存储的值。
枚举与联合的对比
特性枚举enum联合union目的定义一组有限的离散值节省存储空间多个变量共用一块内存存储每个枚举值独占存储空间所有成员共享存储空间用途适用于表示固定的类别、状态等适用于需要在不同时间存储不同类型数据的场景
总结
枚举enum 适用于定义有限的取值范围提高可读性和安全性。联合union 适用于节省内存但需要注意同时访问多个成员可能导致数据混乱。
合理选择枚举和联合可以使代码更加高效、清晰和易维护。