p->next=p;和p=p->next;有什么区别?

2024-11-09 03:50:18
推荐回答(5个)
回答1:

此处可理解为链表,p->next就是p指针的下一指针空间,即在链表中p指针节点下一节点;p->next=p;此语句即时将p指针地址赋给p的下一个节点,相当于将 p->next 节点往前移动,本来取p->next节点的下一个节点是 p->next->next ,现在实际上变成取 p->next 了;而 p=p->next ;此语句是将p节点往后移动一个节点,原本取p节点的下一节点是p->next,现在实际上是取p->next->next了,相当于p节点往后移动,希望能够帮到你!

回答2:

p->next=p表示节点p的下一个节点还是p,如果链表只有p节点,那么这样就变成了一个循环链表
p=p->next表示修改指针p的位置,把p指向原来的下一个节点

回答3:

p为指针,第一个指链表中p的下一个元素为p,也就是自己。第二个p指向p的下一个元素。

回答4:

1、链表中p的下一个元素为p,也就是自己。2、p等于p的下一个元素。

回答5:

假设p->next类型也是和p是同一种指向结构S的指针
指针p指向的地址假设为1000H
p->next指向的地址假设为2000H
注:它们俩的地址一般也是由malloc分配,所以并不是由地址大小来区分前后关系,主要还是由你的程序来定义他们之间的数据结构的
p->next = p;
p=p->next;
要说明白他们之间的区别得看你的程序啦.....--__--b