大家好,我刚学c语言,想问一个关于链接的问题,一直绕不过弯,请指点迷津,谢谢
#include<stdio.h>#define NULL 0
struct student
{long num;
float score;
struct student *next;
};
void main()
{struct student a,b,c,*head,*p;
a.num=10101;a.score=89.5;
b.num=10103;b.score=90;
c.num=10107;c.score=85;
head=&a;
a.next=&b;
b.next=&c;
p=head;
do
{printf("%ld %5.lf\n",p->num,p->score);
p=p->next;
}while(p!=NULL);
}
上面例题在 do...while 第一次时 p 存在着是 head(也是就是&a的地址)对吧,那到了 p=p->next 按程序的 意 思 p 存放是a.next(也就是&b的地址)是吗?可我到这里我就不解了,p=p->next又没有自增(在我认为应该是++p->next),如何跳到下个地址?(按我的想法是 p 因为没有自增 应该是一直存放着 &a才是啊? 好乱啊...
谢谢啊,请指点迷津
[ 本帖最后由 whatfun 于 2009-10-15 10:08 编辑 ]