我正在学习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).value
或n1.next->value
访问。有用。但是,我想说我想通过以下方式直接访问n3
值:
(n1.next).next -> value
(*(n1.next).next).value
编译器抱怨
error: request for member `next' in something not a structure or union
为什么会这样?
答案 0 :(得分:6)
因为您错过了*
。它应该是:
(*(*n1.next).next).value
^^ first node
^^^^^^^^^^ second node
^^^^^^^^^^^^^^^^^^ third node
^^^^^^^^^^^^^^^^^^^^^^^^ third node's value
或简称n1.next->next->value
。