線性表的鍊式存儲,下面這段程式碼
typedef struct Node{
ElemType e;
struct Node *next;
}Node,*LinkList;
LinkList p和Node p有什麼差別
ringa_lee2017-06-10 09:50:45
LinkList
是指標型別,Node
是結構體型態.LinkList
指標型別,Node
是結構體型態.LinkList
指標型態的變數的使用可以用
(*p).e 或
p->e
仅有的幸福2017-06-10 09:50:45
如果你理解int a
與int *a
的區別,再理解了typedef int ElemType
你就可以理解上面例子。
typedef struct Node{
ElemType e;
struct Node *next;
} Node, *LinkList;
首先從外層看,typedef [] ***
就是把[]
中的類型重新定義成以***
表示;
例子中的意思就是說,中間的結構體類型變數struct Node{***}
在這裡可以用Node
和*LinkList
來表示了。而且,
當需要宣告Node
變數時,就可以用Node p
當需要宣告struct Node p
當需要宣告Node
語變數來聲明;等同於struct Node *p
再看中間的結構體定義:
Node
的結構體類型:這個結構體由一個
ElemType
類型的變數e
和一個當前結構體類型指針*next
*next*next
*next
*next