typedef struct 的用法

结构体类型定义

定义方式1:

Typedef struct  LNode {
   int  data;  //数据域
   struct LNode   *next;  //指针域
} *LinkList;

定义方式2:

struct  LNode {
   int data;  //数据域
   struct LNode *next;  //指针域
};

typedef struct LNode *LinkList;
  • 以上两个定义方式是等价的。
  • 是将 *LinkList 定义为 struct LNode 类型,即 LinkList 被定义为一个类型名。
  • 这样就可以用 LinkList 来定义说明新的变量了,如:LinkList L; 即将 L 定义为 struct LNode 类型的指针变量。

结构体类型变量定义

定义方式1:

struct LNode {
   int data;  //数据域
   struct LNode *next;  //指针域
}LnodeA;

定义方式2:

struct LNode {
   int data;  //数据域
   struct LNode *next;  //指针域
};
struct LNode LnodeA;
  • 以上两个定义方式也是等价的。
  • 这样就将 LnodeA 定义为一个 struct LNode 类型的变量,即 LnodeA 为一个 struct LNode 类型的变量名。