结构的自引用
1 struct str 2 { 3 int age; 4 struct str a; //自引用 5 };
1 struct str 2 { 3 int age; 4 struct str *a;//自向自身的指针 5 };
1 typedef struct 2 { 3 int age; 4 struct STR *a; 5 } STR; 6
陷阱:这个定义将是错误的.这个声明的目的是为这个结果创建类型名STR,类型名直到结构声明的末尾才被定义,所以在在结构类内部使用STR时STR未定义.
1 typedef struct str_tag
2 {
3 int age;
4 struct str_tag *a;
5 } STR;