qq_后知后觉_82
2019-07-16 15:59
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是怎么联系起来的
这是两个问题,首先head在n=1的时候就把p1赋值给它,相当于head指向链头;然后p2的两次赋值含义不一样,因为p2保存的是上一次的节点,p2->next=p1表示把上次保存节点的next指针指向这次分配的节点p1,p2=p1表示用p2把这次产生的节点p1保存起来。
Linux C语言结构体
118302 学习 · 162 问题
相似问题