求大神解答
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是怎么聯(lián)系起來的
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是怎么聯(lián)系起來的
2019-07-16
舉報
2019-07-20
這是兩個問題,首先head在n=1的時候就把p1賦值給它,相當(dāng)于head指向鏈頭;然后p2的兩次賦值含義不一樣,因為p2保存的是上一次的節(jié)點,p2->next=p1表示把上次保存節(jié)點的next指針指向這次分配的節(jié)點p1,p2=p1表示用p2把這次產(chǎn)生的節(jié)點p1保存起來。