如何访问C中链表中下一个元素的旁边?

时间:2016-07-13 09:25:43

标签: c pointers linked-list

我正在学习C并且感到困惑。例如:

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

entry n1, n2, n3;
int i;

n1.value = 100;
n2.value = 200;
n3.value = 300;

n1.next = &n2;
n2.next = &n3;

n2节点的值可由(*n1.next).valuen1.next->value访问。有用。但是,我想说我想通过以下方式直接访问n3值:

(n1.next).next -> value

(*(n1.next).next).value

编译器抱怨

error: request for member `next' in something not a structure or union

为什么会这样?

1 个答案:

答案 0 :(得分:6)

因为您错过了*。它应该是:

(*(*n1.next).next).value
    ^^                   first node
  ^^^^^^^^^^             second node
^^^^^^^^^^^^^^^^^^       third node
^^^^^^^^^^^^^^^^^^^^^^^^ third node's value

或简称n1.next->next->value