C 具有此表单列表的链接列表/指针[0]

C 具有此表单列表的链接列表/指针[0],c,pointers,linked-list,C,Pointers,Linked List,我正在用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 nod

我正在用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; ­­­­­­­­­­­­­­­­­­­­­­­­­
}
列表[0]是什么意思?它是我的链表的第一个元素吗? 我知道我的问题看起来很愚蠢,但我到处都找不到答案


谢谢您的帮助。

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

list[0]
*(list+0)
相同,后者与
*(list)
*list
相同

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


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

这是一些认为数组和指针是相同的人编写的链表代码,因此编写了模糊的gunge:(为什么您的函数和结构类型都被称为
reverse