初学数据结构,有个小问题
线性表的链式存储,下面这段代码
typedef struct Node{
ElemType e;
struct Node *next;
}Node,*LinkList;
LinkList p和Node p有什么区别
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
线性表的链式存储,下面这段代码
typedef struct Node{
ElemType e;
struct Node *next;
}Node,*LinkList;
LinkList p和Node p有什么区别
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
LinkList
是指针类型,Node
是结构体类型.LinkList
指针类型的变量的使用可以用(*p).e
或者p->e
,Node
类型变量使用可以用p.e
.如果你理解
int a
与int *a
的区别,再理解了typedef int ElemType
你就可以理解上面例子。首先从外层看,
typedef [] ***
就是把[]
中的类型重新定义成以***
表示;例子中的意思就是说,中间的结构体类型变量
struct Node{***}
在这里可以用Node
和*LinkList
来表示了。并且,当需要声明
Node
变量时,就可以用Node p
来声明;等同于struct Node p
当需要声明
Node
指针变量时,就可以用LinkList p
来声明;等同于struct Node *p
再看中间的结构体定义:
定义了一个别名为
Node
的结构体类型:这个结构体由一个
ElemType
类型的变量e
和一个当前结构体类型指针*next
构成而后你声明的每一个该结构体类型的变量中都包含这两个元素。
typedef是定义一个类型,区别于宏定义,#define t int 在用的时候如果定义两个变量t a, b那b就不是指针,而用typedef int t,这个时候用t定义就不会出问题