指针的指针问题

PinkRobin 2010-04-06 10:44:07
struct node {
int data;
struct node *next;

};
假设有struct node *a, *b, *c,一次相连,struct node **p, p = &b;
*p = c的效果为什么相当于a->next = c,即把b从链表中删除??
望高手赐教~
...全文
63 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
PinkRobin 2010-04-07
  • 打赏
  • 举报
回复
不好意思,这是我的理解错误,其实这样写是有问题的,不过仍然感谢大家的帮助。
huanmie_09 2010-04-06
  • 打赏
  • 举报
回复
p=&b,二级指针p指向一级指针b.
后一句*p=c等价于b=c;
b和c指向了同一个节点,原先有a->next=b,现在a->next=c就成立了.
这样做造成了原来b指针指向的节点没有指针指向.
cattycat 2010-04-06
  • 打赏
  • 举报
回复
1楼说的是对的,但这种方式删除不推荐。
机智的呆呆 2010-04-06
  • 打赏
  • 举报
回复
所以a->next=c后就把先前b指向的结点取下来了。
fyhack 2010-04-06
  • 打赏
  • 举报
回复
p为指针b的引用,*p就是指针b的对象了。
*p=c; 把指针c赋给指针b ,b和c指向同一NODE了,即*c
机智的呆呆 2010-04-06
  • 打赏
  • 举报
回复
a->next=b;
b->next=c;
c->next=0;

p=&b;
*p=c;
b=c;
所以a->next=c

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧