例11.9编写一个输出链表的函数print。
void print(struct student *head)
{struct student*p;
printf("\nNow,These %d records are:\n",n);
p=head;
if(head!=NULL)
do
{printf("%ld %5.1f\n",p->num,p->score);
p=p->next;
}while(p!=NULL);
   }
算法可用图11.17表示。
其过程可用图11.18表示。p先指向第一结点,在输出完第一个结点之后,p移到图中p'虚线位置,指向第二个结点。程序中p=p->next的作用是将p原来所指向的结点中next的值赋给p,而p->next的值就是第二个结点的起始地址。将它赋给p,就是使p指向第二个结点。