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

结构体(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.xdnf.cn/news/18004.html

相关文章:

  • MySQL的学习笔记
  • 基于Spring Boot的智能民宿预订与游玩系统设计与实现 民宿管理系统 民宿预订系统 民宿订房系统
  • Fiddler 实用指南,让网络调试更直观、更高效
  • 【秋招笔试】2025.08.15饿了么秋招机考-第三题
  • 4.3 computed watch watchEffect
  • 日本CN2服务器租用多少钱
  • sqli-labs通关笔记-第50关 GET数值型order by堆叠注入(手工注入+脚本注入两种方法)
  • Redis 缓存和 Redis 分布式锁
  • Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
  • 嵌入式硬件篇---电容滤波
  • Python Sqlalchemy数据库连接
  • 华测科技的3D GPR数据分析
  • 无线也要“自主可控”——东土科技WLAN方案
  • C语言+安全函数+非安全函数
  • imx6ull-驱动开发篇26——Linux 中断实验
  • Pytest 插件使用指南:让你的测试更高效
  • GitHub的使用教程
  • WordPress 7B2主题,在使用PHP 8.0+出现502的解决办法。
  • php危险函数,二.assert()[现版本已弃用]
  • 第十六届蓝桥杯青少组C++省赛[2025.8.9]第二部分编程题(4、矩阵圈层交错旋转)
  • MyBatis 动态数据源切换在 Spring Boot 环境下的实现方案
  • 【postgresql】一文详解postgresql中的统计模块
  • 云手机存储和本地存储的区别
  • C#WPF实战出真汁06--【系统设置】--餐桌类型设置
  • 【总结】Python多线程
  • 国内多光谱相机做得好的厂家有哪些?-多光谱相机品牌厂家
  • 硬件实现webrtc的编解码
  • 【2024前端实战综合练习】HTML+CSS+JavaScript 实现无穷可爱爱心喷射特效(含源代码解析 代码结构逻辑简析)
  • OpenCV 阈值处理
  • Flutter 以模块化方案 适配 HarmonyOS 的实现方法