gpt4 book ai didi

c - 循环遍历 C 结构体(不带 union 体)

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

我的意图:在不使用 union 的情况下循环遍历一个结构的 30 个成员,所有成员都是字符数组类型,每个成员都存储对 itoa 的调用结果。在下面的代码中,我将结构体成员命名为a-z、A-D。在调用函数中,我初始化这些字符的字符串,称为“字母”,然后尝试通过使用增量变量作为字母的索引引用它们来循环遍历结构成员。然后,我尝试转储结构中每个成员的内容。 **编辑:我意识到,考虑到您可以看到的代码,成员不会包含任何内容。问题似乎在于引用这样的结构成员。

struct listArrays {

char a[10];
char b[10];
char c[10];
char d[10];
char e[10];
char f[10];
char g[10];
char h[10];
char i[10];
char j[10];
char k[10];
char l[10];
char m[10];
char n[10];
char o[10];
char p[10];
char q[10];
char r[10];
char s[10];
char t[10];
char u[10];
char v[10];
char w[10];
char x[10];
char y[10];
char z[10];
char A[10];
char B[10];
char C[10];
char D[10];

};

struct listArrays Ternaries;

int testTernary(){

char letters[30] = "ABCDabcdefghijklmnopqrstuvwxyz";
int i;

for(i = 0; i < 30; ++i){
dumpArray((Ternaries.(letters[i])), 10);
}

return 0;
}

我得到的错误是“'('标记之前的预期标识符。”

我已经排除的问题:

    -The dumpArray function works fine.
-Looping through the letters works fine, outside the context of the
referral to struct members

最佳答案

标识符(名称)仅存在于程序文本中。一旦编译和链接,它们就不再存在。所以你不能“索引”该字母的结构。你能做的是:

struct listArrays {

char letters[30][10];
};

现在您可以访问这些“字母”:

dumpArray((Ternaries.letters[i]), 10);

关于c - 循环遍历 C 结构体(不带 union 体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43005762/

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