84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
線性表的鍊式存儲,下面這段程式碼
typedef struct Node{ ElemType e; struct Node *next; }Node,*LinkList;
LinkList p和Node p有什麼差別
ringa_lee
LinkList是指標型別,Node是結構體型態.LinkList 指標型別,Node是結構體型態.LinkList 指標型態的變數的使用可以用(*p).e 或p->e
LinkList
Node
指標型態的變數的使用可以用
或
如果你理解int a與int *a的區別,再理解了typedef int ElemType 你就可以理解上面例子。
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 再看中間的結構體定義:
typedef [] ***
[]
***
struct Node{***}
*LinkList
Node p
struct Node p
struct Node *p
Node的結構體類型:這個結構體由一個ElemType類型的變數e和一個當前結構體類型指針*next*next*next*next*next
這個結構體由一個
e
*next
p->e🎜可以用🎜p.e🎜.🎜LinkList
是指標型別,Node
是結構體型態.LinkList
指標型別,Node
是結構體型態.LinkList
指標型態的變數的使用可以用
(*p).e或
p->e如果你理解
int a
與int *a
的區別,再理解了typedef int ElemType
你就可以理解上面例子。首先從外層看,
定義了一個別名typedef [] ***
就是把[]
中的類型重新定義成以***
表示;例子中的意思就是說,中間的結構體類型變數
struct Node{***}
在這裡可以用Node
和*LinkList
來表示了。而且,當需要宣告
Node
變數時,就可以用Node p
當需要宣告struct Node p
當需要宣告
Node
語變數來聲明;等同於struct Node *p
再看中間的結構體定義:
Node
*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next🎜*next 🎜而後你聲明的每一個該結構體類型的變數中都包含這兩個元素。 🎜的結構體類型:
這個結構體由一個
ElemType類型的變數
e
和一個當前結構體類型指針*next
*next*next
*next*next