gpt4 book ai didi

c - 为什么在链表的 C 实现中需要指针?

转载 作者:太空狗 更新时间:2023-10-29 16:57:37 25 4
gpt4 key购买 nike

为什么在 C 语言的链表实现中使用指针很重要?

例如:

typedef struct item                                     
{
type data;
struct item *next;
} Item;

typedef struct list
Item *head;
} List;

如果我在没有指针的情况下使用相同的实现会怎样?

最佳答案

好吧,你最终会得到这样的东西

typedef struct item                                     
{
type data;
struct item next;
} Item;

现在 C 编译器将尝试找出 Item 有多大。但是由于 next 嵌入在 Item 中,它最终会得到这样的等式

size-of-Item = size-of-type + size-of-Item

这是无限的。因此我们有一个问题。因此,C 需要指针,所以你有

size-of-Item = size-of-type + size-of-pointer

已关闭。更有趣的是,即使您使用 Java、Python 或 Haskell 等语言执行此操作,您实际上也是在隐式存储一个指针(他们称之为引用)来打破循环。他们只是对你隐瞒事实。

关于c - 为什么在链表的 C 实现中需要指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17676593/

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