【发布时间】:2017-11-15 04:36:28
【问题描述】:
typedef struct node
{
int data;
struct node *next;
}Node; // ???
我不明白为什么我们在定义之后使用节点。执行什么功能?它会阻止结构无限指向自身吗? 问题可能听起来很愚蠢,因为我还在学习。 谢谢。
【问题讨论】:
标签: c++ data-structures linked-list
typedef struct node
{
int data;
struct node *next;
}Node; // ???
我不明白为什么我们在定义之后使用节点。执行什么功能?它会阻止结构无限指向自身吗? 问题可能听起来很愚蠢,因为我还在学习。 谢谢。
【问题讨论】:
标签: c++ data-structures linked-list
结构定义后有一个Node,因为它之前有一个typedef。
结构定义本身是这样的:
struct node
{
int data;
struct node *next;
};
因为这是 C++,所以通过名称 node 来引用结构类型就足够了。然而,编写它的人似乎最初来自 C 背景,或者旨在提供与 C 兼容的标头。在 C 语言中,您必须将其称为 struct node,有些人认为这很冗长。所以有问题的人立即提供了一个类型别名。您提供的代码相当于:
struct node
{
int data;
struct node *next;
};
typedef struct node Node;
它允许我们在 C 或 C++ 中通过名称 Node 来引用相同的类型。
【讨论】:
这里,你定义了一个结构体,同时声明了一个结构体变量。 typedef关键字用于创建Node类型,其类型为struct node。
因此,您可以轻松地使用Node n1; 而不是struct node n1。
【讨论】: