问题
I'm implementing linked lists using structures. I have a structure -
typedef struct llist node;
typedef node *nodeptr;
struct llist
{
int data;
nodeptr next;
};
Now lets say I declare a variable nodeptr *ptr;
. How do I access the members data
and next
using ptr
?
回答1:
You deference the first pointer and then the second one.
To access the data and next in the structure statement would like this
(*ptr)->data = 5;
(*ptr)->next = temp;
brackets around ptr is required since ->
has higher priority than *
.
->
is equivalent to writing *.
(e.g. ptr->data
is the same as *ptr.data
).
来源:https://stackoverflow.com/questions/21398105/accessing-structure-elements-via-double-pointers-in-c