看来你对C/C++的指针那一块没学好。建议你在看链表之前还是先把指针的使用基础打牢了再看。
p是一个指针,内部可以保存一个地址。在C/C++中,给指针直接赋值,就是让指针指向某个地址。
p = head; //这一句,head保存了头节点的地址,赋值之后p就指向了头结点。
p->next = q; // 首先要了解->是什么意思。->运算符是先取值,后访问成员,相当于(*p).next = q;也就是说先找到p所指向的位置的数据(头节点),然后访问其next成员。而头结点的next成员也是一个指针,给它赋值就是让它指向和q指向的同一个目标。
后面的p=q;也是一样的,让p指向q所指向的目标,这样p就相当于指向了下一个节点,达到了移动到下一个节点的目的。
总之你先打好指针、结构体的基础,然后回头再来看这些东西,拿张纸画几个箭头就很快可以理解了。指针无非就是一堆箭头而已。。
c语言