Aka*_*era 0 c structure linked-list
struct LinkedList
{
int data;
struct LinkedList *next;
};
Run Code Online (Sandbox Code Playgroud)
在代码中,在定义中struct LinkedList有一个指向结构本身的指针.
它是如何工作的?
所以,代码
struct LinkedList
{
int data;
struct LinkedList *next;
};
Run Code Online (Sandbox Code Playgroud)
定义了含有名为两个构件结构类型data和next,与该next部件存储的地址不同的相同类型的对象.鉴于代码:
struct LinkedList Node1 = { .data = 1, .next = NULL };
struct LinkedList Node0 = { .data = 0, .next = &Node1 };
Run Code Online (Sandbox Code Playgroud)
你得到的东西看起来像这样:
Node0 Node1
+---+--------+ +---+------+
| 0 | &Node1 |--->| 1 | NULL |
+---+--------+ +---+------+
Run Code Online (Sandbox Code Playgroud)
(请注意,您永远不会以这种方式创建链接列表,这仅用于说明).
这可能有两个原因:
struct类型的指针都具有相同的大小和表示.这是一个自引用数据类型的示例,它只是意味着类型将引用(指针)存储到相同类型的不同对象.
| 归档时间: |
|
| 查看次数: |
2881 次 |
| 最近记录: |