地址指针问题

p->next=q;
q=p;
p=(node*)malloc(sizeof(node));
请问这时候两个节点的地址都是q吗?
当循环当下一次时,p->next=q 时,p->next是指向先前的哪个节点?

阅读 1.3k
1 个回答

每次循环都有五个对象参与:p、q、前一个节点、当前节点(上一轮循环创建的新节点)、下一个节点(新节点)。

每轮循环开始的时候,p指向当前节点,q指向前一个节点。

搞清楚这一关系以后,在纸上画一下就可以明白这几句代码的作用了。简单来说就是由后向前(由尾部向头部)依次添加链表的节点

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进