今天来继续介绍我们有关结构体的相关知识
结构体的自引用
结构体的自引用,顾名思义嘛,就是在我们的结构体中再次引用该结构体,这一点跟我们的函数递归有异曲同工之妙,不了解函数递归的小伙伴可以移步到我之前做过的一期(链接放在下方):
函数递归-CSDN博客
在我们的结构体中,包含一个类型为该结构本身的成员是否可行呢?
咱们空口无凭,在代码上来演示:
我们可以看出VS系统已经检测出并自动报错了,这是为什么呢?
这是因为:一个结构体中再包含一个同类型的结构体变量,这样的结构体变量的大小就会无穷大,是不合乎规矩的,正确的自引用格式如下:
另外呢,在我们的结构体自引用的过程中,夹杂了 typedef 对匿名结构体类型的重命名,也会出现一些小问题,例如:
这样做答案是否定的,因为我们需要考虑一个顺序的问题,我们 Node 是对前面的匿名结构体类型的重命名,但我们在该匿名结构体内部提前引用 Node 类型来创建变量,这样我们顺序很混乱,正确格式如下(在定义结构体时,不使用匿名结构体):
OKK,有关结构体知识的补充暂时就这么多了,还有一些关于结构体的对其,位段等等,这些我们还是等学习完指针再来讲解会更好理解,咱们下期再见,与诸君共勉!!!