gpt4 book ai didi

c - 理解链表语法

转载 作者:行者123 更新时间:2023-11-30 17:03:35 25 4
gpt4 key购买 nike

1  struct node
2 {
3 int data;
4 struct node *next;
5 }*head;
6
7 void append(int num)
8 {
9 struct node *temp,*right;
10 temp= (struct node *)malloc(sizeof(struct node));
11 temp->data=num;
12 right=(struct node *)head;
13 while(right->next != NULL)
14 right=right->next;
15 right->next =temp;
16 right=temp;
17 right->next=NULL;
18 }

我需要帮助理解这段代码的某些部分。

1) 这段代码的作用是什么?

2) 第 5 行做什么?

}*head;

当我制作结构时,我习惯看到这一点:

struct node
{
int data;
struct node *next;
};

3) 第 12 行应该做什么?不确定这个语法

right=(struct node *)head;

我的猜测是,它会获取 head 所指向的内容并正确指向它。那么为什么不直接这样做:right = head;

谢谢!

最佳答案

所以,这可能不是最完整的答案:关于}*head;,这只是立即声明结构体的头部,一个名为 head 的实例,它本身是一个指向结构体实例的指针。然后,在第 12 行,通过 right = (struct node *)head,指针被转换。也许这是为了安全或清晰起见;我不知道。

关于c - 理解链表语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113148/

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