typedef struct node
{
int data;
struct node *next;
}Node; // ???
我不明白为什么我们在定义之后使用 Node 。执行什么功能?它会阻止结构无限地指向自身吗? 这个问题可能听起来很愚蠢,因为我仍在学习。 谢谢。
最佳答案
结构体定义之后有一个 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
引用相同的类型。
关于c++ - 在这个节点定义中,为什么我们在结构体定义之后使用 "Node"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47299429/