Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过不带并集的C结构循环_C_Struct - Fatal编程技术网

通过不带并集的C结构循环

通过不带并集的C结构循环,c,struct,C,Struct,我的意图是:在不使用联合的情况下循环一个结构的30个成员,所有成员都是字符数组类型,在每个成员中存储调用itoa的结果。在下面的代码中,我将结构成员命名为a-z,a-D。在调用函数中,我初始化了一个名为“字母”的字符串,然后尝试通过使用增量变量作为字母索引引用它们来循环结构成员。然后,我尝试转储结构中每个成员的内容**编辑:我意识到,根据您可以看到的代码,成员不会包含任何内容。问题似乎在于这样引用结构成员 struct listArrays { char a[10]; char

我的意图是:在不使用联合的情况下循环一个结构的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;
} 
标识符(名称)仅存在于程序文本中。一旦编译和链接,它们就不再存在。因此,您不能为字母“索引”结构。您可以做的是:

struct listArrays {

    char letters[30][10];
};
现在您可以访问这些“字母”:


请提供一个。你不能用一个变量来引用这样的结构成员。这远远不是C。你为什么不用一个2D数组来做你想做的事情呢?数组不是这样的。如果您想通过字符或2D数组进行访问,如果您只想在一个结构中使用多个数组,则需要使用从
char
char[]
的关联容器。Paul,我的示例是否过多、不完整或无法验证?
struct listArrays {

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