typedef struct (資料整理)
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
LNode和*LinkList;是與前面的typedef配合起來使用的,意思是給你聲明的結構體起一個別名叫LNode,同時起一個指針別名叫LinkList
LNode a;//聲明了一個struct LNode型變量a,與寫struct LNode a;等價,省心多了;
LinkList p;//聲明了一個struct LNode *型指針變量p,與寫struct LNode *p等價,也省心多了。
如果沒有前面的typedef,意思就不一樣了:LNode就只是一個struct LNode型變量,LinkList也就只是個struct LNode *型指針。
typedef struct lnode(結構體及結構體指針)解惑
數據結構解惑01
在數據結構中會看到
typedef struct QNode
{
QElemType data; //數據域
struct QNode *next; //指針域
}QNode,*QueuePtr;
可以這樣來理解
typedef struct QNode Qnode
typedef struct QNode *QueuePtr
同樣通過這樣一個例子可以這樣來理解
typedef struct int ElemType
typedef struct int* ElemTypePtr
第一個是 定義新的整型變量 ElemType
第二個是 定義新的指向整型變量的指針 ElemTypePtr
可以簡單理解為 ElemType = int
ElemTypePtr = int*
同理在上面的結構體中
可以理解為
typedef struct QNode QNode
typedef struct QNode* QueuePtr
於是
QNode 的對象都是結構體
QueuePtr 的對象都是結構體指針