gpt4 book ai didi

c - 使用指针访问嵌套结构中的成员。等效箭头运算符

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:59 25 4
gpt4 key购买 nike

给出的示例是双向链表的部分代码。假设我有以下两个具有给定类型定义的结构。

 typedef struct dplist dplist_t;
typedef struct dplist_node dplist_node_t;

struct dplist_node {
dplist_node_t * prev, * next;
element_t element;
};

struct dplist {
dplist_node_t * head;
};

我的主函数中有以下代码:

 void main()
{
dplist_t * list;
dplist_node_t *node_one, *node_two;

//the arrow equivalent of the assignment
list->head = node_one;
list->head->next = node_two;
}

我知道 node_one 赋值的“点”等效项是:

 (*list).head = node_one;

但是当我试图找到与 node_two 赋值等效的“点”时,以下所有变体似乎都是错误的:

 (*list).(*head).next = node_two;
(*list).*head.next = node_two;
(*list).head.next = node_two;

有谁知道这条语句的正确写法吗?

最佳答案

list->head->next = node_two;可以写成

(*(list->head)).next = node_two;  

可以重写为

(*((*list).head)).next = node_two;

关于c - 使用指针访问嵌套结构中的成员。等效箭头运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43467603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com