求大神解答
n++;
if(n==1){
head = p1;
}else{
p2->next = p1;
}
p2 = p1;
p1 = (struct weapon*)malloc(sizeof(struct weapon));
第一次 把 p1 賦值給head , head 沒(méi)有next? ,p1 賦值給了 p2;
第二次 把一個(gè)新的p1 賦值給了 p2->next = p1; p2 = p1;p2被賦值了兩次p2 和head是怎么聯(lián)系起來(lái)的
n++;
if(n==1){
head = p1;
}else{
p2->next = p1;
}
p2 = p1;
p1 = (struct weapon*)malloc(sizeof(struct weapon));
第一次 把 p1 賦值給head , head 沒(méi)有next? ,p1 賦值給了 p2;
第二次 把一個(gè)新的p1 賦值給了 p2->next = p1; p2 = p1;p2被賦值了兩次p2 和head是怎么聯(lián)系起來(lái)的
2019-07-16
舉報(bào)
2019-07-20
這是兩個(gè)問(wèn)題,首先head在n=1的時(shí)候就把p1賦值給它,相當(dāng)于head指向鏈頭;然后p2的兩次賦值含義不一樣,因?yàn)閜2保存的是上一次的節(jié)點(diǎn),p2->next=p1表示把上次保存節(jié)點(diǎn)的next指針指向這次分配的節(jié)點(diǎn)p1,p2=p1表示用p2把這次產(chǎn)生的節(jié)點(diǎn)p1保存起來(lái)。