为什么我们在自引用结构中使用指针?

Ant*_*nov 3 c struct pointers self-reference

为什么我们在自引用结构中使用指针?这是义务还是不是?如果没有,我们在结构与正常结构定义中指向struct的指针有什么优势呢?

typedef struct _Struct {
  struct _Struct* next;  // do we really need this pointer?
} Struct;
Run Code Online (Sandbox Code Playgroud)

lll*_*lll 6

指针具有固定的大小,因此编译器可以_Struct在解析时确定结构的大小.

如果_Struct物理上包含它自己,则无法确定其大小,它是一个循环定义.

  • @AntonBarinov:C结构的一个成员实际上是结构的一部分,占用的内存与定义为单独变量的内存一样多.结构不能包含自身的实例.(您可能习惯于其他语言,其中结构的结构成员被实现为隐式引用.C不会这样做.) (3认同)