我的代码是这样的:
struct a{
....
....
};
struct a c[MAXNODES];
struct b{
int k;
struct a *p;
};
struct b d[MAXNODES];
所以,如果我需要访问struct a
中struct b
的指针,我是否应该使用间接运算符。
some_variable=*(d.[i-1].p);
答案 0 :(得分:1)
所以你有2个结构,其中一个持有指向另一个实例的指针:
typedef struct a {
int i;
} A;
typedef struct b {
A *pA;
} B;
然后在某处,你有一个结构数组,struct a
的实例驻留在其中:
A arr[10];
B b;
b.pA = &arr[0]; // makes b.pA to point to the address of first element of arr
b.pA->i = 2; // equivalent to (*b.pA).i = 2;
A a = *b.pA; // creates a copy of an element that b.pA points to
A* pA = b.pA; // stores the reference (copies the pointer)