-
首先比较两个学生系统的表头定义
typedef struct Student { int number; int score; }Student;//定义结构体 void InitStuList(Student* H[20]) { for (int i = 0; i < 20; i++) { H[i] = (Student*)malloc(sizeof(Student));//分配空间 } } void ChuShi(Student* H)//初始化 { for (int i = 0; i < 7; i++) { H[i].number = i + 1; printf("请输入第%d号的成绩:\n", i+1); scanf_s("%d", &H[i].score); } }
typedef struct Student
{
int number;
int score;
}Student;//定义结构体
typedef struct seqlist//定义顺序表
{
Student *data;
int length;
}seqlist;
void InitStuList(seqlist* H)//分配空间
{
H->data = (Student*)malloc(20*sizeof(Student));
}
void ChuShi(seqlist* H)//初始化
{
for (int i = 0; i < 7; i++)
{
H->data[i].number = i + 1;
printf("请输入第%d号的成绩:\n", i+1);
scanf_s("%d", &H->data[i].score);
}
可以看出,第一个表,虽然也可以,但总觉得有些别扭,有点不像顺序表,所以就可以按照第二个来定义,逻辑上更像是一个线性表