typedef struct lnode(结构体及结构体指针)解惑

 
/* /*
数据结构解惑01  数据结构解惑01
在数据结构中会看到 在数据结构中会看到
typedef struct QNode typedef struct QNode
{ {
QElemType data; //数据域  QElemType data; //数据域
struct QNode *next; //指针域  struct QNode *next; //指针域
}QNode,*QueuePtr; }QNode,*QueuePtr;
typedef struct typedef struct
{ {
QueuePtr front; //队头指针 QueuePtr front; //队头指针
QueuePtr rear; //队尾指针  QueuePtr rear; //队尾指针
}; };
先来解释下上面第一个结构体 先来解释下上面第一个结构体
关键在于后面的那个部分如何理解 关键在于后面的那个部分如何理解
就是 就是
typedef struct QNode typedef struct QNode
{ {
QElemType data; QElemType data;
struct qNode *next; struct qNode *next;
}QNode,*QueuePtr; }QNode,*QueuePtr;
就是QNode,*QueuePtr这两个如何理解 就是QNode,*QueuePtr这两个如何理解
可以这样来理解 可以这样来理解
typedef struct QNode Qnode  typedef struct QNode Qnode
typedef struct QNode *QueuePtr typedef struct QNode *QueuePtr
同样通过这样一个例子可以这样来理解 同样通过这样一个例子可以这样来理解
typedef struct int ElemType typedef struct int ElemType
typedef struct int* ElemTypePtr typedef struct int* ElemTypePtr
第一个是 定义新的整型变量 ElemType 第一个是 定义新的整型变量 ElemType
  第二个是 定义新的指向整型变量的指针 ElemTypePtr 第二个是 定义新的指向整型变量的指针 ElemTypePtr
可以简单理解为 ElemType = int 可以简单理解为 ElemType = int
                ElemTypePtr = int* ElemTypePtr = int*
同理在上面的结构体中 同理在上面的结构体中
可以理解为 可以理解为
typedef struct QNode QNode typedef struct QNode QNode
typedef struct QNode* QueuePtr typedef struct QNode* QueuePtr
于是  于是
QNode 的对象都是结构体 QNode 的对象都是结构体
QueuePtr 的对象都是结构体指针 QueuePtr 的对象都是结构体指针
经验分享 程序员 微信小程序 职场和发展