C编程:如何使用结构中的结构创建链表

时间:2017-12-01 17:32:03

标签: c pointers struct linked-list

所以我正在尝试创建一个学生数据库,其中包含一个结构,其中包含名称作为主要因素和其他因素,如性别,年龄。同样在该结构中,是另一个包含学生班级成绩的结构:我该怎么做?

2 个答案:

答案 0 :(得分:1)

您理解的基本问题是您的students结构错误并且误导了您。看看这个,并试着了解它是如何工作的,为什么它是你需要的,以及如何使用它来解决你的问题:

struct student{
    char name[20];
    int age;
    char gender[7];
    struct grades gr;
    struct student *nextStudent;
};

你的打印功能,看起来像这样

void print (void){
    for(struct student *stud = root; stud != NULL; stud = stud->nextStudent){
        printf("Name: %s\n",stud->name);
        printf("Grades: %s, %s, %s, %s\n", stud->gr.math, stud->gr.history, stud->gr.science, stud->gr.writing);
    }
}

答案 1 :(得分:0)

如果问题是“如何访问学生结构中的成绩结构?”答案是这样的 - 假设st是学生的实例指针

st->grades.math[0] = 'A'