struct Phant {
int y;
struct Phant y;
};
在这段代码中,我遇到了编译错误。
在Java中编写相同的东西时,只需稍作更改,即用类替换struct,代码就可以完美运行
class Ded {
int y;
Ded s = new Ded();
}
为什么第二个片段起作用时第一个片段出现编译错误?
答案 0 :(得分:0)
无论语言如何,struct
都不能包含自身。它将无限大。
但是,很可能像Java示例一样,它可能包含一个指向自身的指针/引用(因为指针具有固定的已知大小)。用C编写,如下所示:
struct Phant {
int i;
struct Phant *p;
};
struct Phant p1;
p1.p = malloc(sizeof(struct Phant));