gpt4 book ai didi

c - C语言中的自引用结构是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 05:04:06 25 4
gpt4 key购买 nike

struct LinkedList  
{
int data;
struct LinkedList *next;
};

在代码中,struct LinkedList 的定义中有一个指向结构本身的指针。

它是如何工作的?

最佳答案

所以,代码

struct LinkedList  
{
int data;
struct LinkedList *next;
};

定义了一个结构类型,包含两个名为datanext 的成员,next 成员存储不同 相同类型的对象。给定代码:

struct LinkedList Node1 = { .data = 1, .next = NULL };
struct LinkedList Node0 = { .data = 0, .next = &Node1 };

你得到的东西看起来像这样:

Node0              Node1
+---+--------+ +---+------+
| 0 | &Node1 |--->| 1 | NULL |
+---+--------+ +---+------+

(请注意,您永远不会以这种方式创建链表,这只是为了说明)。

这可能有两个原因:

  1. C 允许您声明指向不完整 类型的指针;
  2. 指向struct 类型的指针都具有相同的大小和表示形式。

这是一个自引用数据类型的例子,它只是意味着该类型存储了对同一类型的不同对象的引用(指针)。

关于c - C语言中的自引用结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39151133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com