首页 新闻 会员 周边 捐助

关于c语言结构体定义的问题

0
悬赏园豆:20 [已解决问题] 解决于 2013-12-09 11:36

在看有关结构体的内容,说结构体不能递归定义,然后就自己去试了一下,果然不行.

可是,当我定义一个指向该结构体的指针的时候,为什么就可以了呢???

小弟愚笨.求解  谢谢~~~

sw90的主页 sw90 | 初学一级 | 园豆:84
提问于:2013-12-09 09:01
< >
分享
最佳答案
0

因为结构体是有大小的,你不能定义一个结构体的大小等于一个int型大小加上结构体本身,但是指针无论指向什么类型大小都是一样的(因为指针的值本身是地址)。二者的区别是,后者是一个指针而不是结构。事实上这个指针指向的是同一种类型的不同结构。例如链表和树,每个结构指向链表的下一个元素和树的下一个分支。你可以看下《C和指针》这本书,上面有很清楚的讲解。

收获园豆:10
我非英雄 | 菜鸟二级 |园豆:250 | 2013-12-09 11:07

谢谢~~

sw90 | 园豆:84 (初学一级) | 2013-12-09 11:34
其他回答(2)
0

第一种方式没法确定结构体的大小,因为结构内又有结构,如此无限循环,大小是多少?第二种指针的大小是能确定的,比如32位系统就是4字节指针,因此可以这样定义。

收获园豆:10
kenzhang1031 | 园豆:198 (初学一级) | 2013-12-09 09:23

谢谢~~

支持(0) 反对(0) sw90 | 园豆:84 (初学一级) | 2013-12-09 11:34

前辈  不好意思....只能选择一个最佳答案.............T.T

支持(0) 反对(0) sw90 | 园豆:84 (初学一级) | 2013-12-09 11:37
0

我问下,为啥要在结构体,定义结构体啊?

幕三少 | 园豆:1384 (小虾三级) | 2013-12-09 09:29

作为一个链表。

支持(0) 反对(0) 告诉 | 园豆:285 (菜鸟二级) | 2013-12-09 10:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册