gpt4 book ai didi

c - 如何理解链表结构中的指针 'next'?

转载 作者:行者123 更新时间:2023-11-30 19:14:15 28 4
gpt4 key购买 nike

struct Node
{
int a;
struct Node *next;
};

next 将如何动态地指向?我读到 malloc 返回地址值 - 是这样吗?请解释struct Node *next。这是在结构中声明指针的默认方式吗?

最佳答案

如果您有此声明

struct Node
{
int a;
struct Node *next;
};

然后你可以像这样定义它:

struct Node node = {1, 0};

struct Node *node = (Node*) malloc(sizeof(struct Node)); 
<小时/>

当您想要将节点附加到 next 成员时,您可以像这样:

node.next = (Node*) malloc(sizeof(struct Node));

node->next = (Node*) malloc(sizeof(struct Node));
<小时/>

实验示例:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {
struct Node
{
int a;
struct Node *next;
};

struct Node node1;
struct Node *node2 = (Node*) malloc(sizeof(struct Node));

node1.a = 1;
node2->a = 2;
node1.next = node2;
node2->next = (Node*) malloc(sizeof(struct Node));
node2->next->a = 3;

printf("node1.a = %d, node1->next->a node2->a = %d, node2->next->a = %d\n", node1.a, node2->a, node2->next->a);
}

关于c - 如何理解链表结构中的指针 'next'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448320/

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