c - 指向不存在的结构的指针作为另一个结构中的成员变量是什么意思?
问题描述
我在 C 中看到过这样的代码块:
struct Struct1
{
struct Struct2* var;
}
我想知道这个例子中的确切含义是什么。Struct2
在这段代码中,这是第一次使用名称Struct2
。
解决方案
该类型struct Struct2
是不完整的类型(前提是在结构Struct1的声明之前没有定义该结构)。如果需要定义结构,可以在其他地方定义。但是像这样指向这种类型的指针
struct Struct2 *var;
是一个完整的类型。
例如,您可以struct List
通过以下方式声明结构
struct List
{
struct Node *head;
struct Node *tail;
};
在此声明中不需要结构的完整定义struct Node
。该结构struct List
包含两个指向列表的第一个和最后一个节点的指针。
然后在下面的某个地方,甚至在另一个标题中,您可以定义结构struct Node
,例如
struct Node
{
int data;
struct Node *next;
};
推荐阅读
- rest - JIRA REST API 中是否有创建/获取 API 令牌的方法?
- python - Python/Numpy:向量化行元素与条件的组合
- python - Python numpy 模拟奇怪地不起作用
- java - 我在邮递员控制台上不断收到“错误:连接 ECONNREFUSED 192.168.0.29:8080”,而我试图在 sts4 上发出获取请求
- arcgis - ArcFM 解决方案文件夹中缺少 DotNet 程序集
- python - 在 Python-docx 中格式化
- excel - 如何使用VBA填充公式,但使公式浮动?
- python - 如果 re 模块中有子字符串,如何提取所有原始化合物?
- java - javax.mail.MessagingException:无法连接到 SMTP 主机:
,端口:25,响应:421 - spring-boot - 在 Kubernetes 上使用 spring-session-hazelcast 和 service-dns 导致 SplitBrainMergeValidationOp 错误