大白话讲明白结构体
- 结构体是什么?🧩
你可以把结构体理解成一个**“自定义的变量类型”,或者更形象一点,一个“小包裹”**。
- 在C语言里,我们已经有了 int (整数)、 float (小数)、 char (字符)这些基本类型。
- 但现实世界的东西往往很复杂,比如一个“学生”,他有学号、姓名、年龄、成绩等多个属性。用一堆零散的变量来管理会非常混乱。
- 结构体就是用来解决这个问题的:它允许你把这些相关的变量打包在一起,形成一个新的、更复杂的“变量类型”。
- 怎么定义一个结构体?📝
定义结构体,就是在告诉编译器:“我要创造一个新的‘包裹’,它的名字叫什么,里面要装些什么东西。”
语法是这样的:
c
struct 结构体名 {
数据类型 成员1;
数据类型 成员2;
// … 可以有更多成员
};
举个例子:
我们来定义一个“学生”结构体:
c
struct Student {
int id; // 学号,是一个整数
char name[20];// 姓名,是一个字符串(字符数组)
int age; // 年龄,是一个整数
float score; // 成绩,是一个小数
};
这样,我们就创造了一个叫 struct Student 的新类型,它可以用来描述一个学生的所有信息。
- 怎么使用这个结构体?🛠️
定义好结构体类型后,我们就可以像使用 int 一样,用它来定义变量了。
① 定义结构体变量
c
// 定义了一个叫 zhangsan 的学生变量
struct Student zhangsan;
现在, zhangsan 就是一个“学生”包裹,里面有 id 、 name 、 age 、 score 四个格子,但现在都是空的。
② 给结构体变量赋值
我们用 . 操作符来打开这个“包裹”,给里面的成员赋值。
c
zhangsan.id = 2023001; // 给学号赋值
strcpy(zhangsan.name, “张三”); // 给姓名赋值(字符串要用strcpy函数)
zhangsan.age = 18; // 给年龄赋值
zhangsan.score = 95.5; // 给成绩赋值
也可以在定义的时候就一次性赋值(初始化):
c
struct Student lisi = {2023002, “李四”, 19, 88.0};
③ 访问结构体里的成员
同样用 . 操作符来读取里面的值:
c
printf(“姓名:%s\n”, zhangsan.name);
printf(“成绩:%.1f\n”, zhangsan.score);
这段代码会输出:
plaintext
姓名:张三
成绩:95.5
- 为什么要用结构体?🤔
想象一下,如果不用结构体,管理一个学生的信息会是这样:
c
int zhangsan_id;
char zhangsan_name[20];
int zhangsan_age;
float zhangsan_score;
int lisi_id;
char lisi_name[20];
int lisi_age;
float lisi_score;
如果有100个学生,代码会变得像乱麻一样。
而用了结构体之后:
c
struct Student class[30]; // 直接定义一个有30个学生的班级数组,非常清晰
这就是结构体的威力:让复杂的数据变得有条理、好管理。
- 核心总结 💡
- 结构体(struct):是C语言提供的一种自定义数据类型,用于将多个相关变量打包成一个整体。
- 定义:用 struct 关键字,指定结构体名和它包含的成员。
- 使用:
- 用 struct 结构体名 定义变量。
- 用 . 操作符来访问和修改变量里的成员。
- 作用:让代码更清晰、更有逻辑,方便管理复杂的现实世界对象。
更多推荐
所有评论(0)