历时3天终于搞懂了一个关于链表的NULL。不知道高手们以前犯过这样的错误没有。
历时3天终于搞懂了一个关于链表的NULL:原来最后一个节点的p->next就是0;
while (p != NULL)
{
printf("NO.%d student\'s score is: %.2f. address: %0X\n", p->sequence, p->score, p->next);
p = p->next;
n++;
}
开始总是搞不对,后来发现所以范例程序都要打印如下(主要是最后一个值):
NO.99 student's score is: 99.00. address: 625FA0
NO.101 student's score is: 91.00. address: 4AFF20
NO.102 student's score is: 92.00. address: 4AFF40
NO.103 student's score is: 93.00. address: 0
如果这个值有不是0,那就是你的链表建错了。
我就是因为链表建立p2=p1和建新节点的顺序反了,结果总有一个空节点。
不知道高手们以前犯过这样的错误没有。