【概念理解】typedef-Lnode-*Linklist

結構體定義  

 typedef struct Lnode
    { 
        int data; 
        struct Lnode *next; 
    }Lnode,*LinkList;

上述語句等價於:

   

struct Lnode1 { int data; struct Lnode *next;} ;

和  

typedef struct Lnode1 Lnode2; 

//注意這裏的"struct Lnode1"是一個整體,表明"Lnode1"是一個結構體類型,作用是在下文把"struct Lnode1"重命名爲"Lnode2",以後就可以不用寫"struct"了,直接使用"Lnode2"定義結構體變量或指針等等。  
即可以將

 struct Lnode1 node;//定義一個Lnode1類型的結構體,命名爲node

//簡寫爲

 Lnode2 node;//與上一句作用相同。

  同理,在定義鏈表時

typedef struct Lnode1* LinkList;

把struct Lnode1* 重命名爲LinkList,以後就可以使用LinkList來簡化定義Lnode*類型的變量了(而且還是個指向struct變量的指針)。 應該把定義中的那個*與前面的結構體連接在一起考慮,而不是與後面的LinkList連接在一起考慮,這就是容易引起疑惑的地方。

發佈了14 篇原創文章 · 獲贊 33 · 訪問量 9369
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章