Waf*_*eeq 1 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;
Run Code Online (Sandbox Code Playgroud)
n2节点的值可以通过(*n1.next).value或通过访问n1.next->value.有用.但是,假设我想通过以下方式直接访问该n3值:
(n1.next).next -> value
(*(n1.next).next).value
Run Code Online (Sandbox Code Playgroud)
编译器抱怨
error: request for member `next' in something not a structure or union
Run Code Online (Sandbox Code Playgroud)
为什么这样?
因为你错过了一个*.它应该是:
(*(*n1.next).next).value
^^ first node
^^^^^^^^^^ second node
^^^^^^^^^^^^^^^^^^ third node
^^^^^^^^^^^^^^^^^^^^^^^^ third node's value
Run Code Online (Sandbox Code Playgroud)
或者n1.next->next->value简而言之.