gpt4 book ai didi

c - 在 C 中声明结构

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

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

为什么我们有 *head?这与做

不同(更好吗?)
 typedef struct
{
int data;
struct node *next;
}head;

最佳答案

第一部分定义了一个变量head,它是一个指向struct node 类型的指针。它可以是 NULL,表示你的链表有零个元素。

第二个 block 只是声明了一个名为head 的类型。它根本不是一个变量。它不会编译,因为它的 next 字段类型 struct node 不存在。

你可能想要

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

这种形式声明了2个类型,struct nodenode(相同),并定义了一个变量head。我会选择没有 typedef 的第一种形式,因为它更简单,而且您无论如何都不能在结构的 next 字段中引用 typedef。

关于c - 在 C 中声明结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236080/

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