-1

我的代码是这样的:

struct a{
           ....
           ....
           };
    struct a c[MAXNODES];

    struct b{
           int k;
           struct a *p;
           };
    struct b d[MAXNODES];

所以,如果我需要访问指向struct ain的指针,struct b我应该使用间接运算符还是不使用。

some_variable=*(d.[i-1].p);
4

1 回答 1

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)
于 2013-02-09T21:35:07.797 回答