不甚感激……一道C语言请教
发布网友
发布时间:2023-08-04 22:21
我来回答
共3个回答
热心网友
时间:2023-12-20 06:53
这个属于结构体的嵌套定义。
①其实你已经注意到了要填的答案。没错,next根本没有出现,所以空白处应该填上*next。
这样,每一个节点都有一个指向下一个节点的指针,所以需要嵌套定义,即结构体中定义结构体。
②程序的功能是用结构体表示学生编号和成绩, stud1的下一个节点是stud2,stud2的下一个节点是stud3,加上头指针head,这样就是一个链表了。
热心网友
时间:2023-12-20 06:54
#include <stdio.h>
void main()
{
struct stud
{
long num;
float score;
struct stud *next; /*这个成员是指针变量*/
}stud1,stud2,stud3,*head;
stud1.num = 1;stud1.score = 89.5;
stud2.num = 2;stud2.score = 90.5;
stud3.num = 3;stud3.score = 94.5;
head = &stud1; /*将结点a的起始地址赋给头指针head*/
stud1.next = &stud2; /*将结点b的起始地址赋给a结点的next成员*/
stud2.next = &stud3; /*将结点c的起始地址赋给b结点的next成员*/
stud3.next = NULL; /*NULL表示空地址,链表结束*/
}
程序中的next是个指向struct stud类型数据的指针类型成员,
用来存放下一个结点的地址,这样整个链表就连接在了一起,
一环扣一环,而且只有找到"头指针"(head),才能访问链表。
热心网友
时间:2023-12-20 06:54
填空填: *next
单项链表的节点是stud结构体,它本身也要包含指向下个节点的指针啊,要不怎么形成链表。
跟在struct声明后面的stud1 ... *head等等都是变量的声明。前三个是stud节点变量,head是指向节点的指针变量。
下面三行都是给各个节点赋值。
head = &stud1;表示head这个指针指向stud1这个节点(&取地址),下面一样。stud3.next = NULL表示已经到了链表的结尾。
可能你对指针不太熟悉。推荐看《c和指针》。讲的很好。