这听起来非常基本,但我想知道方括号在这样的 C 代码中代表什么。我没有有关结构“aaa”的结构元素类型的信息,我试图从代码中理解它。它是否必须代表数组索引,或者它可以是与结构相关的不同事物?
我是这样理解的:“->”意味着gindex是结构aaa的一个元素,然后括号和参数是括号代表的元素,然后是方括号。
aaa->gindex[aaa->elp_pos].parameter[aaa->no_elp] = sin->obs[counter1].typ_enu;
最佳答案
方括号是数组索引运算符。
根据该表达式,以下内容必须为真:
aaa
是指向某种结构类型的指针,我们将其称为struct A
。struct A
至少包含以下成员:gindex
、elp_pos
和no_elp
。gindex
是另一个struct
类型的数组或指针,我们将其称为struct B
。elp_pos
和no_elp
用作数组索引,因此它们必须具有某种整数类型I
。struct B
至少包含成员parameter
,它是某种类型的数组或指针T
。sin
是指向某种结构类型的指针,我们将其称为struct C
。struct C
至少包含成员obs
。obs
是某个struct
类型的数组或指针,我们将其称为struct D
。struct D
至少包含成员type_enu
,它是相同类型T
作为struct B
中的parameter
数组,或与T
兼容的类型。
<counter1
用作数组索引,因此它必须具有某种整数类型I
。
因此,我们的类型如下所示:
struct D
{
...
<em>T</em> type_enu;
...
};
struct C
{
...
struct D obs[N]; // or struct D *obs;
...
};
struct B
{
...
<em>T</em> parameter[N]; // or <em>T</em> *parameter;
...
};
struct A
{
...
<em>I</em> elp_pos;
<em>I</em> no_elp;
struct B gindex[N]; // or struct B *gindex
...
};
struct A *aaa;
struct C *sin;
<em>I</em> counter1;
...
关于c - (嵌套)C 结构中的方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46691621/