gpt4 book ai didi

c - 具有这种形式的链表/指针 list[0]

转载 作者:太空宇宙 更新时间:2023-11-04 02:36:41 24 4
gpt4 key购买 nike

我正在用 C 编写链表,我遇到了这个问题:我不明白下面的语句。这是我的链表结构

typedef struct node {
int value;
struct node *next;
} node;

这是我正在处理的代码:

void reverse(reverse **list)`void reverse(reverse **list)
{
struct node * prev = NULL;
struct node * next;
struct node * current = list[0];
while(current!= NULL)
{
next = current­>next;
current­>next = prev;
prev = current;
current = next ;
}
list[0] = prev; ­­­­­­­­­­­­­­­­­­­­­­­­­
}

list[0] 是什么意思?它是我链表的第一个元素吗?我知道我的问题看起来很愚蠢,但我无法在任何地方找到答案。

谢谢你的帮助。

最佳答案

list[0] 是指向第一个节点的指针,list 是指向该指针的指针。

list[0]等同于*(list+0),等同于*(list) *列表

这只是一种不同的语法形式,并不意味着list 指向一个数组。

指向第一个节点的指针的地址被传递给函数reverse。然后指向该指针的指针被取消引用 (*list),因此函数外部的原始指针被修改。如果你不这样做,原始指针就不会改变,它也不会再指向列表的开头。

关于c - 具有这种形式的链表/指针 list[0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36370516/

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