gpt4 book ai didi

c - 结构中的结构?

转载 作者:太空宇宙 更新时间:2023-11-03 23:31:04 25 4
gpt4 key购买 nike

我正在用 C 编写一个学生数据库,我定义了两个结构 Student 和 Course,如下所示:

typedef struct student Student;
typedef struct course Course;

struct course
{
char number[300];
char title[300];
char instructor[300];
char days[10];
char start[10];
char end[10];
char location[300];
};

struct student
{
char name[300];
int age;
Course course1;
Course course2;
};

Student *Data[30];
Course *Courses[30];

不过,我在显示我创建的学生时遇到了问题。我只想打印出姓名、年龄和两门类(class),但我无法通过学生一号访问类(class)结构的元素。

我已经试过了:

printf("course1: %s\t%-40s%-30s\t%s\t%s-%s\t%s\n",
Data[i]->course1.number,
Data[i]->course1.title,
Data[i]->course1.instructor,
Data[i]->course1.days,
Data[i]->course1.start,
Data[i]->course1.end,
Data[i]->course1.location);

但这当然行不通......

最佳答案

我已经稍微简化了您的结构作为教学示例。这可能有助于您了解如何访问数据。根据需要调整/扩展以满足您的需求。

typedef struct student Student;
typedef struct course Course;

struct course {
char title[300];
};

struct student {
char name[300];
Course * course; // pointer to a course
};

Student students[30]; // preallocate 30 students
Course courses[30]; // preallocate 30 courses

测试员:

void main(void) {

// 1st course
strcpy(courses[0].title,"C Language 101");

// 1st Student
strcpy(students[0].name,"Charles");

// Assign 1st Student to course #1
students[0].course = & courses[0];

printf("Student 1: name=%s course=%s", students[0].name, students[0].course->title);

return;
}

输出:

Student 1: name=Charles course=C Language 101

关于c - 结构中的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15490419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com