每日一C之自引用结构
每天拾一个C语言贝壳,厚积薄发,积跬步以致千里。
今日贝壳:解自引用结构之疑惑,struct结构体自引用解析
1.自引用结构:
结构体内包含指向自身的指针,这类结构体称为自引用结构。常用的链表节点便是自引用结构。
struct
node{
int
number;
struct node *next; //指向下一个节点的指针
};
2.陷阱:
结构体内包含指向自身的指针是合法的,但包含自身变量是不合法的。如下:
struct node{
int number;
struct node copy; //一个自身节点变量
};
将会导致无限递归定义,这很容易理解,结构体内含copy结构体,copy内又含copy结构体...将陷入无限的循环陷阱。
3.为什么指针可以
?:
首先,指向自身的指针不会引发循环定义,不会陷入循环陷阱;其次,指针具有固定的大小,定义一个结构体,编译器必须知道这个结构体所占内存的大小。
Have a nice
day !
【每日一C之十八】自引用结构,布布扣,bubuko.com
【每日一C之十八】自引用结构
原文:http://blog.csdn.net/lovecodeless/article/details/23446437