我发现了一个有趣的练习,其中包含以下内容:
在C中写入一个包含指向数组本身的指针数组的类型
现在我不确定它的含义。它是否需要像
这样的东西struct a {
struct *b[];
}
int main(void) {
struct b[20]*;
for(i=0;i<19;i++)
b[i]=&b[i];
}
可以这样写吗?
答案 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;
}
据推测,关键是在声明指向它之前,类型不需要完整,只需声明它。