gpt4 book ai didi

C:链接列表和指针到指针

转载 作者:行者123 更新时间:2023-11-30 18:37:57 26 4
gpt4 key购买 nike

表示链表节点的结构:

typedef struct node{
int val;
struct node *next;
} node_t;

以及我们列表的头部:

node_t *head;

现在,我想构建一个函数来创建列表中的第一个元素,当然它将由 *head 指向。在我看来,我将从该函数的正确版本开始,其中我使用了一个指向 head 的指针,即双指针:

void createFirstElement(node_t **head, int value){
*head=NULL;
*head=malloc(sizeof(node_t));
(*head)->val=value;
(*head)->next=NULL;
}

当我使用该版本的 createFirstElement 时,我得到了打印的节点值。但是,我对 createFirstElement 的第一个版本有一个问题,它不起作用:

void createFirstElement(node_t *head, int value){
head=NULL;
head=malloc(sizeof(node_t));
head->val=value;
head->next=NULL;
}

这个版本与双指针版本有何不同?我仍然在参数中获取头指针(而不是指向头的指针)并在内部进行所有更改。

提前谢谢大家!

最佳答案

C 使用“按值调用”,因此在第二个版本中,您使用的是 node_t *head 的副本。当函数返回时,传递给函数的 head 保持不变。

关于C:链接列表和指针到指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35338521/

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