2 回答

TA貢獻(xiàn)13條經(jīng)驗(yàn) 獲得超2個(gè)贊
這里涉及到兩個(gè)概念:
typedef的作用,從第一張圖中可以看到,typedef會(huì)將struct LNode{}和struct Node{}* 分別定義為L(zhǎng)Node和LinkList,所以可以看出,類型LinkList == LNode*
第二張圖中,malloc函數(shù)返回值為sizeof(LNode)大小空間所在的首地址,類型為void*,這里因?yàn)樾枰獙⑵渥鳛橐粋€(gè)LNode來使用,因此將首地址類型轉(zhuǎn)換為L(zhǎng)Node*
對(duì)于作者在最后的隨口一問,其實(shí)要回答明白并不能隨口一說,這里涉及到空間分配問題,malloc會(huì)向計(jì)算機(jī)申請(qǐng)一段空間來使用,如若不做申請(qǐng),那隨手申請(qǐng)的指針會(huì)變?yōu)橐爸羔?,使得程序不可?/p>
對(duì)于LNode *P = s->next;這句話本身并沒有語(yǔ)法錯(cuò)誤,但是首先s在這里是個(gè)野指針,這樣會(huì)使得 P也指向了一個(gè)未知的空間中,使程序走向編的未知和不可控,而且根據(jù)具體的程序需求,這樣做也是不合理的
- 2 回答
- 0 關(guān)注
- 927 瀏覽
添加回答
舉報(bào)