鱼C论坛

 找回密码
 立即注册
查看: 2567|回复: 1

求助!!!

[复制链接]
发表于 2019-7-30 16:49:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在队列中
typedef struct Node
{
    ElemType date;
struct QNode *next;
}QNode, *QueuePrt;


typedef struct

QueuePrt front, rear;
}LinkQueue;

这个结构体的变量名的*QueuePrt和LinkQueue有什么区别,为什么下面的这个LinkQueue不加*,是因为之前的QueuePrt已经表明是指针了,这里只是原本QueuePrt指向的一个变量吗,所以不需要。还有这里的QNode有什么作用呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-4 21:57:52 | 显示全部楼层
首先我们要知道Queue是指向队列时才有的对吧,然后NODE是节点的意思对吧,然后QNODE就是队列的节点(大概这么理解)对吧,好了那么我们接下来就来开始剖析。

*QueuePrt我们知道,是一个指针类型,也就是说,这是一个指向struct NODE结构体类型的指针,因为它前面加了typedef嘛(要是不知道就回去复习一下)
OK我们来讲讲LinkQueue,我们通过typedef这个关键字知道了LinkQueue其实是这个没有名字的结构体的“别名”(大概这么理解就好了),而这里之所以没有加*号,是因为它这里并不需要为指向这个结构体类型的指针起一个别名,它只需要让编译器知道说,我定义了一个叫LinkQueue的类型名字,而这个类型里面,包含着两个结构体变量:QueuePrt front和QueuePrt rear。

好了来解答一下你的第一个问题(其实上面要是理解透了也就懂了),*QueuePrt是一个指向某个结构体类型的指针类型的名字,而LinkQueue是另外一个不同的结构体类型的名字了。

然后第二个问题,其实我们反过来想,这个LinkQueue加了*号有什么作用。这个作用就是说,当我们用这个名字的时候,就相当于自己定义了一个指向这个结构体类型的指针类型(也可以理解为起个别名)

第三个问题,在LinkQueue里面定义的两个变量其实是指针变量(什么类型的指针变量回顾我上面)。也就是说,这个叫做LinkQueue的结构体里面只有两个变量,这两个变量是指向队列的节点的指针类型。

第四个问题,QNODE有啥作用??QNODE就是NODE的别名呀,大概这么理解就好了,,,

好了不知道有没有帮到你,如果有什么不懂再回复我把。。。。。。。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 11:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表