2 回答

TA貢獻1785條經(jīng)驗 獲得超4個贊
如果你理解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
變量時,就可以用 Node p
來聲明;等同于 struct Node p
當(dāng)需要聲明Node
指針變量時,就可以用LinkList p
來聲明;等同于 struct Node *p
再看中間的結(jié)構(gòu)體定義:
定義了一個別名為Node
的結(jié)構(gòu)體類型:
這個結(jié)構(gòu)體由一個ElemType
類型的變量e
和一個當(dāng)前結(jié)構(gòu)體類型指針 *next
構(gòu)成
而后你聲明的每一個該結(jié)構(gòu)體類型的變量中都包含這兩個元素。

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