C-结构体中前后两个LNode和*LinkList的作用分别是什么?后面的LNode和*LinkList的异同点是什么?
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
首先前面那个LNode是节点名称,自定义一个节点,里面包含数据和指想向下一个数据的指针。后面那个LNode是结构体名字,*LinkList是指向结构体的指针。
//你应该是在学单链表吧,我猜你的结构体可能写错了,附上我的猜测,若没错请@一下
typedef struct LNode{ //此行的LNode是一个结构标签
ElemType data;
struct LNode *next;
}LNode,*LinkList; //此行的LNode是结构体struct LNode的一个别名
//*LinkList也是结构体struct LNode的一个别名
//换言之LinkList是结构体struct LNode类型的指针的别名
//也就是说 struct LNode *p;这条语句等同于LinkList p;
typedef int ElemType
typedef struct node
{
ElemType data;
struct node *next; //*next为指向struct node结构体的指针
}Node,List; //Node(=struct node)为结构体变量名,*List为指向此结构体的指针类型(一般指向头结点)
typedef struct LNode{
ElemType data;
struct LNode next; }LNode,*LinkList;
其中第一个LNode是定义的结构体数据结构类型名,第二个LNode是定义结构体的别名,而LinkList是指向该结构体变量的指针
把代码改一下也许你就能看懂了。你的代码等价于:
struct LNode {
ElemType data;
struct LNode next;
};
typedef struct LNode LNode;
typedef struct LNode* LinkList;
LNode只是结构体struct LNode的简称、别名。
而LinkList则是指针类型,指向LNode(也就是struct LNode)的指针。