指向自己的指针数组

时间:2014-06-04 20:51:25

标签: c arrays pointers struct

我发现了一个有趣的练习,其中包含以下内容:

  

在C中写入一个包含指向数组本身的指针数组的类型

现在我不确定它的含义。它是否需要像

这样的东西
struct a {
    struct *b[];
}   

int main(void) {  
    struct b[20]*;
    for(i=0;i<19;i++)  
        b[i]=&b[i];  
}

可以这样写吗?

2 个答案:

答案 0 :(得分:4)

不,练习不是要求指针指向自身。它说“类型本身”。所以它说的是数组应该包含指向 type struct a值的指针。指针实际指向哪个地址无关紧要。

答案 1 :(得分:1)

问题是要求这样的事情:

#include <stdio.h>

struct A
{
    struct A* b[5];
};

int main(void) 
{
    struct A a;
    int i;
    for (i=0; i<5; ++i)
         a.b[i] = &a;
    return 0;
}

据推测,关键是在声明指向它之前,类型不需要完整,只需声明它。