【概念理解】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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章