在 C 中通过双指针访问结构元素

nsa*_*ane 4 c pointers linked-list double-pointer singly-linked-list

我正在使用结构实现链表。我有一个结构-

typedef struct llist node;
typedef node *nodeptr;
struct llist
{
    int data;
    nodeptr next;
};
Run Code Online (Sandbox Code Playgroud)

现在假设我声明了一个变量nodeptr *ptr;。我如何访问成员datanext使用ptr

KAR*_*HAT 5

您尊重第一个指针,然后是第二个。

要访问数据和结构语句中的 next 会像这样

(*ptr)->data = 5;
(*ptr)->next = temp;
Run Code Online (Sandbox Code Playgroud)

ptr 周围的括号是必需的,因为-> 它的优先级高于 *.

->相当于写作*. (例如ptr->data,与 相同*ptr.data)。