链表输入问题
#include <stdio.h>#include <stdlib.h>
struct student
{
int num;
char name[7];
int score[2];
int total;
};
struct node
{
struct student data;
struct node* next;
};
typedef struct node* link;
link create()
{
link p,q,head=NULL;
q=p=(link)malloc(sizeof(struct node));
scanf("%d",&p->data.num);
scanf("%s",p->data.name);
scanf("%d",&p->data.score[0]);
scanf("%d",&p->data.score[1]);
p->data.total=p->data.score[0]+
p->data.score[1];
while(p->data.num)
{
if(head==NULL)
head=p;
else
q->next=p;
q=p;//问题
p=(link)malloc(sizeof(struct node));
scanf("%s",p->data.name);
scanf("%d",&p->data.score[0·
scanf("%d",&p->data.score[1]);
p->data.total=p->data.score[0]+
p->data.score[1];
}
q->next=NULL;
return head;
}
请问一下q=p是什么意思?或者是最好把while循环说一下原理。。。谢谢。我自己想了,没想明白。