当前位置: 首页 > 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.dtcms.com/a/333388.html

相关文章:

  • 基于SpringBoot的房产销售系统
  • 护栏卫士碰撞报警系统如何实时监测护栏的状态
  • 系统时钟配置
  • 38 C++ STL模板库7-迭代器
  • 用ICO图标拼成汉字
  • BFS和codetop复习
  • 复杂度扫尾+链表经典算法题
  • Klipper-probe模块
  • H5449G降压恒流无人机照明驱动芯片方案24V/36V/48V/72V降6V12V9V /8A替换NCL30160
  • 探索无人机图传技术:创新视野与无限可能
  • C#WPF实战出真汁06--【系统设置】--餐桌类型设置
  • Linux 系统中, LANG 和 LC_ALL变量有什么区别与联系?
  • 文档对比(java-diff-utils)
  • lidar2imu/auto_caliban以及manual_calib安装过程
  • 8.15网络编程——UDP和TCP并发服务器
  • qs是什么?
  • Python入门第3课:Python中的条件判断与循环语句
  • Ubuntu20.04下Remmina的VNC密码忘记后重置
  • 手机场景性能测试中的部分关键指标
  • Layui 语法详解与全功能示例
  • iOS 性能监控实战,多工具协作完成全方位分析
  • LCR 076. 数组中的第 K 个最大元素
  • 代码随想录刷题Day33
  • [优选算法专题二滑动窗口——长度最小的子数组]
  • 【完整源码+数据集+部署教程】电池柱状态检测系统源码和数据集:改进yolo11-TADDH
  • 华为交换机配置文件的相关命令和用法
  • 深入解析五大通信协议:TCP、UDP、HTTP_HTTPS、WebSocket与GRPC
  • Linux:套接字
  • shell脚本实现sha256sum校验并拷贝校验通过的文件
  • 从模拟实现插入去理解AVL树的旋转平衡