用结构体变量的指针作函数参数,运行结果不符
代码如下:------------------------------------------------------------------
void fun4(LinkList *La)
{
LinkList *p=La, *q, *k, *t=La;
q=k=p->next;
while (t->next)
{
t=t->next;
}
while (k->next)
{
k=q->next;
q->next=p;
if (p==La)
{
p->next=NULL;
}
p=q;
q=k;
}
t->next=p;
La=t;
}
void main()
{
LinkList *La;
LinkList a1, a2, a3, a4;
a1.data=1;
a2.data=3;
a3.data=5;
a4.data=2;
La=&a1;
a1.next=&a2;
a2.next=&a3;
a3.next=&a4;
a4.next=NULL;
fun4(La);
LinkList *p=La;
while (p)
{
printf("%d ", p->data);//我本想运行fun4()函数把链表逆转排列,但是运行结果不符,只显示"1"。
p=p->next; //但是把函数改成LinkList * fun4(LinkList La),并把p=fun4(La)却成功了,不解,求教。
}
printf("\n");
}