在C语言链表中,p=q->next和p->next=q->next有什么区别?

最近在学习c语言,做链表的逆转的题,不理解p=q->next和p->next=q->next有什么区别,我用第一种为什么报错通不过呢?... 最近在学习c语言,做链表的逆转的题,不理解p=q->next和p->next=q->next有什么区别,我用第一种为什么报错通不过呢? 展开
 我来答
MrAllRight
2018-09-20 · TA获得超过2362个赞
知道大有可为答主
回答量:3639
采纳率:50%
帮助的人:2181万
展开全部
给你普及下指针的真谛:
假设两个链表节点的内存地址分别为AAAA和BBBB,节点内偏移4字节处保存名为next的指针,
p = 0xAAAA,q=0xBBBB,这说明p和q分别指向这两个节点。
p->next是内存AAAE处的内容,q->next是内存BBBF处的内容(假设为CCCC)
那么, p = q->next 即p=0xCCCC
p->next = q->next,即将内存AAAE处的内容改为CCCC
两值意义相差甚远。
晚霞拉长了身影
2018-09-20
知道答主
回答量:45
采纳率:37%
帮助的人:15.3万
展开全部
p=q—>next的意思是把p结点接到q结点后面,p—>next=q—>next的意思是把q结点的下一个结点接到p结点后。
追答
执行完q=p—>next后结点顺序为p–q 。如果再执行p=q—>next,顺序就变为了,p–q–p,这样输出时就会形成一个死循环。p q  p q p ....。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
足球队联络员
2020-04-14 · TA获得超过787个赞
知道答主
回答量:255
采纳率:55%
帮助的人:26.2万
展开全部

我想了一个晚上,这是我的思考成果。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式