gpt4 book ai didi

c - 指向结构中其他结构的指针

转载 作者:行者123 更新时间:2023-12-02 15:16:22 24 4
gpt4 key购买 nike

我的讲师介绍了以下代码,但对其含义的解释不充分。

typedef struct _s {
int value;
struct _s *next;
} STACKITEM;

STACKITEM *stack = NULL;
  1. 我明白什么是指针和结构。但是,我不知道在结构中有一个指向结构的指针是什么意思。请澄清并详细说明这个概念。

  2. 我不明白为什么将结构声明为 typedef。由于以下原因,这似乎是多余的:

一个典型的结构状态如下。

struct struct_format_name { 
members;
} individual_struct_object_name;

因此,我们将一个对象声明为一个结构,并将这种格式的结构命名为_s。那么使用 typedef 的意义何在?除了 typedef 关键字外,它与您用来声明任何结构的格式相同。

  1. 我想澄清指向结构化格式的结构指针(如上所述)与指向特定结构的结构指针之间的区别。

我怀疑指向结构化格式的结构的指针,如上所述,可以指向该格式的任何结构吗?但是,指向具体结构的结构指针只能指向该特定结构,而不能指向相同格式的其他结构?

最佳答案

这称为链表。指针next是什么允许您通过让每个元素指向下一个元素并让最后一个元素有 next 来浏览列表指向 NULL ,所以你知道你在最后。参见 https://en.wikipedia.org/wiki/Linked_list您实际上并不是在存储结构,而是在存储指向下一个元素的指针,将其视为数组,但不是对齐元素,而是每个元素都使用其地址指向下一个元素。

至于next pointer 使用 struct 关键字声明的原因是 STACKITEM类型还不存在(它在结构定义之后定义)。

关于c - 指向结构中其他结构的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154442/

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