发布于2026-07-09 阅读(0)
扫一扫,手机访问
要用C语言管理学生信息,struct无疑是最直接、最高效的工具。它能把姓名、学号、年龄、成绩这些类型各异的数据字段打包成一个完整的逻辑单元——一个“学生”就对应一个结构体变量。下面就从定义到实战,一步步拆解清楚。
通过 struct 关键字声明一个名为 Student 的结构体,内部根据实际需要组合基本类型与数组。一个典型的学生模型通常包含以下字段:
char name[20]:存放姓名(C 风格字符串,预留足够空间,避免溢出)int id:整型学号(例如 2024001)int age:整型年龄(例如 19)float score:浮点型成绩(支持小数,如 89.5)char gender:单字符表示性别('M' 或 'F')定义代码很直白:
struct Student {
char name[20];
int id;
int age;
float score;
char gender;
};
结构体类型定义好之后,就可以像普通变量一样声明和使用。初始化方式有两种:定义时直接赋值,或者先定义再逐个赋值。
struct Student s1 = {"张三", 2024001, 19, 92.5, 'M'};struct Student s2; strcpy(s2.name, "李四"); s2.id = 2024002; ... —— 注意,字符串不能直接用 = 赋值,必须用 strcpy()(记得包含头文件 )用点号 . 访问结构体成员,读写、打印、修改都靠它:
printf("%s, %d, %d, %.1f, %c\n", s1.name, s1.id, s1.age, s1.score, s1.gender);s1.score = 95.0;void printStudent(struct Student s) { ... } 简单但开销较大;更高效的是传地址:void updateScore(struct Student *ps) { ps->score += 2.0; },用箭头 -> 访问成员(等价于 (*ps).score)单一学生固然简单,但实际场景往往是批量管理一个班级甚至多个年级。结构体数组就是最佳方案:
struct Student class[50]; —— 定义一个最多容纳 50 人的班级for (int i = 0; i < n; i++) { printf("%s, %d\n", class[i].name, class[i].id); }struct Student *p = &class[0]; printf("%s", p->name); —— 指针配合 -> 操作,处理批量数据时非常灵活
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8