gpt4 book ai didi

c - Head=Current=ptr有什么用;在(c)中?

转载 作者:行者123 更新时间:2023-11-30 20:05:18 26 4
gpt4 key购买 nike

struct data *createNew(int digit)
{
struct data *ptr = (struct data*)malloc(sizeof(struct data));
if (ptr == NULL) {
puts("Failure");
return NULL;
}
ptr->number = digit;
ptr->Next = NULL;

Head = Current = ptr;
return ptr;
}

我还没有完全理解结构。有人可以详细说明 (Head = Current = ptr;) 的目的是什么吗?我知道它为下一个结构创建了一个头部,但我不明白如何创建。

最佳答案

您的问题与结构无关,而是与 C 计算表达式的方式有关。您有ptr,它是指向存储结构的某个内存位置的指针。基本上,是内存位置的地址(整数值)。然后,你有2个指针,Head和Current,它们是指向与ptr相同类型的结构的全局指针,并且你想让它们指向与ptr相同的结构。基本上,您想要的是为 ptr 引用的新结构分配内存,并使 Head 和 Current 指向相同的内存位置。因此,您需要以下分配:

Head = ptr;
Current = ptr;

您可以将这 2 个表达式压缩为一个:

Head = Current = ptr;

,其计算结果为:

(Head = (Current = ptr));

因此,ptr 首先被分配给 Current,然后该分配的值(即 ptr)被分配给 Head。现在你有了一个 Head,它是链表的开头,还有一个 Current 指针,它可以用于迭代,并且初始值等于 Head。

关于c - Head=Current=ptr有什么用;在(c)中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406806/

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