第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

學習c語言的一個疑問

學習c語言的一個疑問

C C# C++
不會說話的魚 2017-11-28 21:40:58
這是慕課網(wǎng)上邊的c語言結構體里面的課程,為什么第19行將p2->next 的指正指向了p1的地址,隨后又初始化p2,這樣不是直接吧p2->next的地址就不指向p1了不是么,求大神解答!
查看完整描述

1 回答

?
kevinZee

TA貢獻50條經(jīng)驗 獲得超39個贊

他把p1p2換來換去看上去確實有點難理解。

他的意思其實就是創(chuàng)建一個鏈表,利用一個變量來緩存和不斷更新尾節(jié)點的指針

我在你這個函數(shù)的基礎上簡單調(diào)整了一下,可能更便于你的理解

struct?weapon?*?create(){

????struct?weapon?*?head?=?NULL;
????struct?weapon?*?tail?=?(weapon?*)?malloc(sizeof(struct?weapon));
????scanf("%d?%d",&(tail->price),&(tail->atk));
????int?n?=?0;
????while(tail->price?!=?0){
????????n++;
????????if(n?==?1){
????????????head?=?tail;
????????}else{
????????????//創(chuàng)建一個新的節(jié)點
????????????struct?weapon?*?new_tail?=?(weapon?*)?malloc(sizeof(struct?weapon));
????????????scanf("%d?%d",&(new_tail->price),&(new_tail->atk));
????????????new_tail->next?=?NULL;
????????????//將這個新節(jié)點和當前的尾節(jié)點相連
????????????tail->next?=?new_tail;
????????????//更新尾節(jié)點指針
????????????tail?=?new_tail;
????????}
????}

????return?head;
}


查看完整回答
1 反對 回復 2017-11-29
  • 不會說話的魚
    不會說話的魚
    我不明白的是tail->next=new_tail;tail = new_tail;他先設置了tail結構里面的next指針,然后又給tail進行一個初始化,這么一來的話tail->next這個設置不是被覆蓋了嗎?
  • kevinZee
    kevinZee
    tail是指針變量,是存放地址的,假設現(xiàn)在tail的值從1000H變?yōu)?010H,改變的是指針的指向,而不會改變1000H這個地址內(nèi)的數(shù)據(jù)
  • 不會說話的魚
    不會說話的魚
    對的啊,但是現(xiàn)在tail->next=new_tail;tail = new_tail;里面tail->next的指向先設置成了new_tail;然后由tail=new_tail;這樣子不就是初始化了tail->next=new_tail->next了么,那這么以來鏈表的話就不能呼應了???
  • 1 回答
  • 0 關注
  • 1468 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號