结构体的声明和实例化
请问下面C程序中定义了结构体之后大括号后面的}Bitnode,*Bstree分别代表什么意思?我看了其他地方的说明,BItnode是实例化一个Bitnode类型结构体的意...
请问下面C程序中定义了结构体之后大括号后面的}Bitnode,*Bstree分别代表什么意思?我看了其他地方的说明,BItnode是实例化一个Bitnode类型结构体的意思,Bstree是实例化一个Bitnode类型指针的意思,请问这样理解正确吗?如果上面的假设是正确的话,那么又有一个问题,就是insert_key()方法里面的参数,第一个参数是Bstree *root,请问这里BStree为什么可以作为一种指针类型?Bstree在上面看来不是一个指针的实例吗?为什么可以作为一种类型?如果是想用Bitnode类型的指针的话,我觉得应该是Bitnode *root才是正确的也就像下面方法体里面的 Bitnode *father一样,才是正确的还请各位帮忙分析一下,谢谢。
展开
3个回答
展开全部
如果没有typedef的话,你前面的话是对的。
BItnode是实例化一个Bitnode类型结构体的意思,Bstree是实例化一个Bitnode类型指针的意思
但是有了typedef,实际是给你这个结构类型定义一个别名(另一个名称)
例如 typedef int kkk;
然后你就可以使用kkk x;//x为int类型变量
所以你typedef struct{} Bitnode,*Bstree; 是给这个结构体类型、以及结构体指针类型起别名。
Bstree *root //相当于指针的指针·`
BiTnode *p=*root //注意这里是解析指针,得到BiTnode *类型的值,也就是Bstree类型
BItnode是实例化一个Bitnode类型结构体的意思,Bstree是实例化一个Bitnode类型指针的意思
但是有了typedef,实际是给你这个结构类型定义一个别名(另一个名称)
例如 typedef int kkk;
然后你就可以使用kkk x;//x为int类型变量
所以你typedef struct{} Bitnode,*Bstree; 是给这个结构体类型、以及结构体指针类型起别名。
Bstree *root //相当于指针的指针·`
BiTnode *p=*root //注意这里是解析指针,得到BiTnode *类型的值,也就是Bstree类型
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
如你所描述:}Bitnode,*Bstree
Bitnode 和 *Bstree 之间是有一个“,”逗号的,这个逗号的意思就是说:Bitnode 和 *Bstree一样,都是类型结构体,不过后一个是指针类型而已;
就像是 int i,k; i和k都是int类型的变量,对吧?
Bitnode 和 *Bstree 之间是有一个“,”逗号的,这个逗号的意思就是说:Bitnode 和 *Bstree一样,都是类型结构体,不过后一个是指针类型而已;
就像是 int i,k; i和k都是int类型的变量,对吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef表示重命名的意思 就是本来类型是struct BiTnode,现在既可以用另外一个名字BiTnode,也可以用指针类型的那个名字代替它了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询