c++ - 初学数据结构,有个小问题
ringa_lee
ringa_lee 2017-06-10 09:48:45
[C++讨论组]

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

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

LinkList p和Node p有什么区别

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
ringa_lee

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

仅有的幸福

如果你理解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构成
而后你声明的每一个该结构体类型的变量中都包含这两个元素。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号