当前位置: 首页 > news >正文

结构体(Struct)、枚举(Enum)的使用

结构体(Struct)、枚举(Enum)的使用

在许多编程语言中,结构体(Struct)和枚举(Enum)是非常有用的数据类型,它们帮助我们组织和管理数据。下面以 C 语言为例,介绍结构体和枚举的使用:

结构体(Struct)的使用

结构体用于组合不同类型的数据,形成一个新的复合数据类型。

#include <stdio.h>
#include <string.h>// 定义一个结构体表示学生
struct Student {char name[20];  // 姓名int age;        // 年龄float score;    // 成绩
};int main() {// 声明并初始化结构体变量struct Student stu1 = {"张三", 18, 90.5f};// 访问结构体成员printf("姓名:%s\n", stu1.name);printf("年龄:%d\n", stu1.age);printf("成绩:%.1f\n", stu1.score);// 修改结构体成员的值strcpy(stu1.name, "李四");stu1.age = 19;stu1.score = 88.0f;printf("\n修改后:\n");printf("姓名:%s\n", stu1.name);printf("年龄:%d\n", stu1.age);printf("成绩:%.1f\n", stu1.score);return 0;
}

结构体的主要用途:

  • 封装相关的数据,使代码更具可读性和维护性
  • 可以作为函数参数传递复杂数据
  • 可以用于创建链表、树等数据结构

枚举(Enum)的使用

枚举用于定义一组命名的常量,使代码更具可读性。

#include <stdio.h>// 定义一个枚举表示星期
enum Weekday {MONDAY,    // 0TUESDAY,   // 1WEDNESDAY, // 2THURSDAY,  // 3FRIDAY,    // 4SATURDAY,  // 5SUNDAY     // 6
};// 定义一个枚举表示颜色,并指定初始值
enum Color {RED = 10,GREEN = 20,BLUE = 30
};int main() {enum Weekday today = FRIDAY;enum Color favorite = BLUE;printf("今天是星期%d\n", today + 1);  // 输出:今天是星期5if (today == FRIDAY) {printf("明天是周六,快周末了!\n");}printf("我最喜欢的颜色代码是:%d\n", favorite);  // 输出:30return 0;
}

枚举的主要用途:

  • 表示固定的一组选项或状态
  • 替代魔法数字(magic numbers),使代码更易理解
  • 限制变量只能取预定义的值,提高代码安全性

在 C++、Java、Python(3.4+)等其他语言中,结构体和枚举的概念类似,但语法和功能可能略有差异,但核心思想是一致的。

http://www.lryc.cn/news/621857.html

相关文章:

  • 电源测试系统ATECLOUD-Power,让您告别电源模块测试痛点!
  • MLOps已死,AgenticOps当立:构建新一代AI智能体的全新工程范式
  • 【Redis】Redis典型应用——分布式锁
  • 【部署K8S集群】 1、安装前环境准备配置
  • k8s1.28.2集群部署istioctl的1.20.0版本(X86架构)
  • Mac(一)常用的快捷键整理
  • Mac Mysql 卸载
  • 18- 网络编程
  • Java ArrayList的介绍及用法
  • 单片机闪烁灯实验
  • HDFS数据倾斜导致MapReduce作业失败的排查与优化实践
  • 3分钟解锁网页“硬盘“能力:离线运行VSCode的新一代Web存储技术
  • 【数据分享】2022 年黑龙江省小麦、玉米和水稻幼苗影像数据集
  • 经典回顾:Hive执行原理、MapReduce执行流程、Spark执行流程
  • 系统思考:情绪内耗与思维模式
  • 学习笔记与效率提升指南:编程、记忆与面试备考
  • 腾讯云开发小程序工具箱使用心得
  • LeetCode Hot100:递归穿透值传递问题
  • 三天速通 Vue+Flask+SQLite 项目+阿里云轻量应用级服务器【宝塔面板】①
  • 【Unity3D实例-功能-拔枪】角色拔枪(一)动态创建武器
  • 非中文语音视频自动生成中文字幕的完整实现方案
  • 【HarmonyOS】鸿蒙应用迁移实战指南
  • STM32传感器模块编程实践(十四)DIY语音+满溢检测智能垃圾桶模型
  • 开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘
  • 17.3 删除购物车商品
  • 【科研绘图系列】R语言绘制多种饼图
  • 20day-人工智能-机器学习-线性回归
  • 超高车辆碰撞预警系统如何帮助提升城市立交隧道安全?
  • 【机器学习深度学习】生成式评测
  • 金融项目高可用分布式TCC-Transaction(开源框架)