结构体与指针!!!
有如下结构体的声明:
struct data
{
char x;
int y;
int z;
struct data p;
};
这种类型的自引用是非法的。而下面这个声明确是合法的:
struct data
{
char x;
int y;
int z;
struct data *p;
};
这个声明和前面那个声明的区别在于p现在是个指针而不是结构。编译器在结构的长度确定之前就已经知道指针的长度,所以这种类型的自引用时合法的。
为什么说编译器在结构的长度确定之前就已经知道指针的长度?此例中指针的长度是多少,为啥不能用sizeof(p)求?
[解决办法]
这个就是和链表差不多了
指针大小在32位机上都是4个字节大小的,可以确定结构体大小!
[解决办法]