2 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果你理解int a
與int *a
的區(qū)別,再理解了typedef int ElemType
你就可以理解上面例子。
typedef struct Node{ ElemType e; struct Node *next; } Node, *LinkList;
首先從外層看,typedef [] ***
就是把[]
中的類型重新定義成以***
表示;
例子中的意思就是說,中間的結(jié)構(gòu)體類型變量struct Node{***}
在這里可以用Node
和*LinkList
來表示了。并且,
當(dāng)需要聲明Node
變量時(shí),就可以用 Node p
來聲明;等同于 struct Node p
當(dāng)需要聲明Node
指針變量時(shí),就可以用LinkList p
來聲明;等同于 struct Node *p
再看中間的結(jié)構(gòu)體定義:
定義了一個(gè)別名為Node
的結(jié)構(gòu)體類型:
這個(gè)結(jié)構(gòu)體由一個(gè)ElemType
類型的變量e
和一個(gè)當(dāng)前結(jié)構(gòu)體類型指針 *next
構(gòu)成
而后你聲明的每一個(gè)該結(jié)構(gòu)體類型的變量中都包含這兩個(gè)元素。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
LinkList
是指針類型,Node
是結(jié)構(gòu)體類型.LinkList
指針類型的變量的使用可以用 (*p).e
或者 p->e
,Node
類型變量使用可以用 p.e
.
- 2 回答
- 0 關(guān)注
- 720 瀏覽
添加回答
舉報(bào)