永发信息网

关于*p=L->next的问题,单链表的销毁

答案:3  悬赏:50  手机版
解决时间 2021-04-02 00:28
  • 提问者网友:自食苦果
  • 2021-04-01 16:33
关于*p=L->next的问题,单链表的销毁
最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-04-01 17:49
p,q是LinkList*类型的指针啊。因为L是LinkList*类型的指针,
LinkList *p=L是声明一个LinkList*类型指针p,其值为L的值。同理q是p->next的值嘛。追问我不懂*p=L和p=L有什么区别?追答LinkList *p=L;就等价于
LinkList *p; //先定义一个LinkList*类型的指针变量p;
p=L;使用LinkList*类型的指针L赋值给p。
就和我们平时定义int*指针一样的嘛。追问int *p=L,那么L是地址,*p的值是L的地址,p也是地址,但是这样的话p和L就不相等。不理解啊追答是的。我说的意思是比如
int i;
int *p1=&i;
int *p2=p1;这样的意思。
就是定义一个int*指针p2,用p1的值赋值给p2。
这里只不过把int改成LinkList了而已。追问呵呵 再问下
int *p1=&i; 这个句子是不是p1等于i的地址,定义的时候int *和实际的*p1是不是有区别?追答int *p1=&i是将i的地址值给p1.
int *p;是定义指针p
p是使用指针本身的值
*p是去指针的值所表示内存的值,即p指向的值。追问谢谢追答祝你学习进步!
全部回答
  • 1楼网友:走死在岁月里
  • 2021-04-01 20:25
p是头节点,q是p的下一个节点。 p=l 不行,应为p接收的是L的引用,所以要是指针类型,
* 表是指针,就是记住那个L的地址。追问我理解的是LinkList *p=L是 *p是L的地址,那p的地址和L 的地址应该是不一样的吧? 我首先定义LinkList *p; 然后再p=L 这样呢?追答你这样定义也可以,因为p是地址变量,可以接受地址赋值。
  • 2楼网友:詩光轨車
  • 2021-04-01 19:21
LinkList *&L 是指针的引用,指针的别名
while(q!=NULL)
{
free(p);//删除前面节点
p=q;
q=p->next;
}
p,q为临时变量保存链表信息
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯