foo
是一个包含5个标量变量(A
, B
, C
, D
, F
)和一个数组(E
)的结构体。在这个上下文中,令我困惑的是f[0]
、f[1]
和f[2]
是什么以及这里发生了什么。
int
bar(struct foo *f)
{
f[1].C = f[0].B > f[2].C;
f[0].E[-1] = f[0].D;
f[0].A = f[1].C;
}
f[0]
,f[1]
和f[2]
是具有成员变量的单独结构体吗?可以有人解释一下吗?谢谢。
f
是指向struct foo
数组的第一个元素的指针。当使用数组下标(例如[1]
)进行寻址时,编译器会计算出元素的地址并对其进行解引用(在这个例子中为*(f + 1)
)。 - rslemos