p是一个指针,即它的值为某个节点的地址值,所以当它的值更新时只是\"它由指向的原节点变成指向一个新节点\",而不代表\"它指向的节点的值变成另外一个节点值了\".在程序中生成新节点都是用malloc申请新空间生成的,所以每次新节点不会覆盖之前的.每次q会指向最新生成的节点(q-data=a;q-next=NULL),p也会指向最新的节点(但在指向之前有个步骤就是把之前次新的节点的指针域next指向新节点)(p-next=q;p=q),当然,如果是第一个节点,那么额外要把h指向这个节点,且没有次新节点的操作,这样所有的节点就连起来了即生成了一个链表.其实只要记住指针的值是地址值,其他的自己多分析下就应该可以搞清了.
|