我的理解,结构体的在构造的时候肯定不能引用自身,不然就会形成嵌套死循环。
通俗一点的理解,定义一个结构体的时候,在定义其成员的时候,这个结构体还未完成。发现引用了一个还未定义完成的结构体(也就是他自身),编译器会出错把。
“以该结构体类型为基本型的” 后面是不是还有话啊,就这里看不懂 ,我是不是可以这样理解,以该结构体类型为父的其他结构体。
那么这个“其他结构体”必然是已经完成构造的,在最原始的父结构体中引用,编译器不会出错,但是我觉得用起来估计会有些毛病。
准确的说来不是结构体还为完成,而是在内存大小还没有确定,编译器无法得知内存占用。所以编译器会出错。而不是为完成,你定义这个结构体的指针就没问题,因为指针在WIN32下都是4个字节
你这话是什么意思?
struct node
{
int a;
struct node *p;
};
你是说这样不行吗?