c语言能不能写一条链表同时包含教师和学生的结构体
时间: 2024-10-13 12:18:02 浏览: 23
当然可以,C语言可以编写一条链表同时包含教师和学生的结构体。为了做到这一点,你可以创建一个名为`Person`的通用结构体,然后定义两个派生结构体`Teacher`和`Student`,它们继承自`Person`并添加各自的特有属性。
下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义基础结构体 Person
typedef struct {
char name[50];
int age;
} Person;
// 教师结构体 Teacher,继承自 Person 并增加专业属性
typedef struct {
Teacher person; // 链接到父类Person
char subject[50]; // 教授的专业
} Teacher;
// 学生结构体 Student,继承自 Person 并增加年级属性
typedef struct {
Student person; // 链接到父类Person
char grade[10]; // 学生年级
} Student;
int main() {
// 创建、初始化和链接链表示例
Teacher *teacher = malloc(sizeof(Teacher));
strcpy(teacher->person.name, "张老师");
teacher->person.age = 30;
strcpy(teacher->subject, "数学");
Student *student = malloc(sizeof(Student));
strcpy(student->person.name, "李同学");
student->person.age = 18;
strcpy(student->grade, "高一");
return 0;
}
阅读全文