初学数据结构,有个小问题

发布于 2022-09-05 01:14:58 字数 156 浏览 16 评论 0

线性表的链式存储,下面这段代码

typedef struct Node{
    ElemType e;
    struct Node *next; 
}Node,*LinkList;

LinkList p和Node p有什么区别

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我的痛♀有谁懂 2022-09-12 01:14:58

LinkList是指针类型,Node是结构体类型.
LinkList 指针类型的变量的使用可以用 (*p).e 或者 p->e,Node类型变量使用可以用 p.e.

删除→记忆 2022-09-12 01:14:58

如果你理解int aint *a的区别,再理解了typedef int ElemType 你就可以理解上面例子。

typedef struct Node{
    ElemType e;
    struct Node *next; 
} Node, *LinkList;

首先从外层看,typedef [] *** 就是把[] 中的类型重新定义成以***表示;
例子中的意思就是说,中间的结构体类型变量struct Node{***} 在这里可以用Node*LinkList来表示了。并且,
当需要声明Node变量时,就可以用 Node p来声明;等同于 struct Node p
当需要声明Node指针变量时,就可以用LinkList p来声明;等同于 struct Node *p

再看中间的结构体定义:
定义了一个别名为Node的结构体类型:
这个结构体由一个ElemType类型的变量e和一个当前结构体类型指针 *next构成
而后你声明的每一个该结构体类型的变量中都包含这两个元素。

浅沫记忆 2022-09-12 01:14:58

typedef是定义一个类型,区别于宏定义,#define t int 在用的时候如果定义两个变量t a, b那b就不是指针,而用typedef int t,这个时候用t定义就不会出问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文