为了账号安全,请及时绑定邮箱和手机立即绑定

求大神解答

n++;

if(n==1){

head = p1;

}else{

p2->next = p1;

}

p2 = p1;

p1 = (struct weapon*)malloc(sizeof(struct weapon));

第一次 把 p1 赋值给head , head 没有next  ,p1 赋值给了 p2;

第二次 把一个新的p1 赋值给了 p2->next = p1; p2 = p1;p2被赋值了两次p2 和head是怎么联系起来的

正在回答

1 回答

这是两个问题,首先head在n=1的时候就把p1赋值给它,相当于head指向链头;然后p2的两次赋值含义不一样,因为p2保存的是上一次的节点,p2->next=p1表示把上次保存节点的next指针指向这次分配的节点p1,p2=p1表示用p2把这次产生的节点p1保存起来。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux C语言结构体
  • 参与学习       118198    人
  • 解答问题       162    个

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

进入课程

求大神解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信