一、结构体嵌套:构建多层数据模型的核心
作为12年开发经验的老程序员,我在设计学生信息系统时,经常需要处理多层数据关系。例如:
场景需求:学生信息包含姓名(姓+名)、年龄、性别,而姓名需要拆分为「姓氏」和「名字」独立存储。
传统方案缺陷:用单一结构体存储会导致成员冗余,修改时牵一发而动全身。
1. 如何用嵌套结构体实现数据分层?
// 定义姓名结构体(底层模块)
struct Name {
char lastName[20]; // 姓氏
char firstName[20]; // 名字
};
// 定义学生结构体(上层模块)
struct Student {
int age; // 年龄
char gender; // 性别
struct Name name; // 嵌套姓名结构体
} stu1; // 声明全局变量
2. 嵌套结构体的初始化技巧
方式1:逐层赋值(清晰直观)
strcpy(stu1.name.lastName, "韩"); // 赋值姓氏
strcpy(stu1.name.firstName, "美美"); // 赋值名字
stu1.age = 18;
stu1.gender = 'F';
方式2:结构体变量整体赋值(高效简洁)
struct Name tmpName = {"韩", "美美"}; // 临时姓名变量
stu1.name = tmpName; // 直接整体赋值
stu1.age = 18;
3. 多层嵌套实战:员工信息管理
// 定义日期结构体
struct Date {
int year;
int month;
int day;
};
// 定义员工结构体(嵌套两层)
struct Employee {
&nb

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



