gpt4 book ai didi

c - C 中的结构和变量

转载 作者:行者123 更新时间:2023-12-02 07:31:33 25 4
gpt4 key购买 nike

我的结构看起来像这样:

struct Node
{
int value;
struct Node *A;
struct Node *B;
struct Node *C;
struct Node *D;
struct Node *E;
struct Node *F;
struct Node *G;
struct Node *H;
struct Node *I;
};

typedef struct Node *List;

我正在尝试通过 list->znak 访问其中一个“子节点”,其中“znak”是可变的。但是我收到错误:

错误:“struct Node”没有名为“znak”的成员

我不知道如何“告诉”C char 是一个变量。

我写了 char,因为“znak”在我的语言中表示 char。

最佳答案

在 C 中,结构字段名称在运行时不存在,因此您不能像在某些脚本语言中那样将运行时字符或字符串转换为结构偏移量。在您的情况下,我会使用一个 Node * 数组,而不是 10 个单独的字段。

struct Node
{
int value;
struct Node *children[9];
}

要访问数组,您可以通过将字符与序列中的第一个字符进行比较,将字符转换为数组索引。

struct Node* list = /*...*/;
int znak = 'D';
list->children[znak - 'A'] = /*...*/

当然,一旦您开始使用数组而不是命名字段,让 znak 成为整数索引而不是 A 和 I 之间的字符可能会更简单。

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

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