struct strct{ int i; struct strct struct1;//编译通不过,说是变量struct1类型不完全 }; 但是 struct strct{ int i; struct strct *struct1;//完全可以 };
其实多思考下就出来了,第一个结构体中引用对象,对象再引用对象,这样一直嵌套下去,编译器肯定不知道你这个
结构体类型多少字节放得下;
第二个就不同了,因为他是指针,存放struct strct指向的内存地址,是一个固定大小,4Bytes。