c - "struct inside struct"中的限制

标签 c struct

有 2 个 struct 定义 AA。我知道 struct A 可以包含指向 struct APOINTER 但我不明白为什么 struct A 不能包含struct A(不是指针)

最佳答案

因为当您将结构放在彼此内部时,您就是在那个位置将那个结构的另一个副本放入结构中。例如:

struct A {
    int q;
    int w;
};
struct B {
    int x;
    struct A y;
    int z;
};

这将像这样在内存中布局:

int /*B.*/x;
int /*A.*/q;
int /*A.*/w;
int /*B.*/z;

但是如果你试图把一个结构放在它自己里面:

struct A {
    int x;
    struct A y;
};

你有一个 A,它包含一个 int 和另一个 A,它包含一个 int 和另一个 A,现在你有无限多个 int。

关于c - "struct inside struct"中的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39647548/

相关文章:

objective-c - 从Blender导出模型以在iOS App中使用

C:循环中的字符串替换(c初学者)

c - lighttpd : Close its client socket by throwing error "Connection reset by peer"

c - Malloc 和 Realloc 不起作用(C11 - CLion)

c++ - 如何在类中全部内嵌数据结构模板(同一 .h 文件)

c - 在 C 中使一个指针指向另一个指针所指向的内容

c - 如何用C语言(如MATLAB)处理数学函数

c - 僵尸进程在代码中创建,并在另一部分中被杀死

c - C中的结构,它们有效吗?

c - C中的动态结构数组