结构体中在大括号外的变量和指针分别代表什么?同时那个指针这么用是什么意思?

structBiTNode(){TelemTypedate;structBiTNode*l,*r}BiTNode,*BiTree;intcount(BiTreeT)//我... struct BiTNode()
{
TelemType date;
struct BiTNode *l,*r
}BiTNode,*BiTree;

int count(BiTree T) //我说的就是这句当中的形参。
{
if(T==NULL) return 0;
else if((T->l==NULL)&&(T->r==NULL))
return 1;
else
{
return count(T->l)+count(T->r);
}
}
展开
 我来答
pengguismile
2013-07-29 · TA获得超过687个赞
知道小有建树答主
回答量:332
采纳率:100%
帮助的人:125万
展开全部
typedef struct _BiTNode//是否忘记打typedef?要不你底下的BiTree T是不能通过编译的!因为按你的写法BiTree是一个变量而不是一个变量类型,另外请去掉两个圆括号,还有为防止冲突,前边加下划线
{
TelemType date;
struct _BiTNode *l,*r;//老大,记得加分号!
}BiTNode,*BiTree;
意思是定义一个结构体类型(用作链表的一个节点),BiTNode就是该结构体,而BiTree是一个BiTNode类型的指针。
BiTree T是说参数T是一个指针,该指针是BiTree类型的,根int * ,float* 一样,就是一个指针而已。
追问
额,3q,,我只问问结构体大括号外定义的指针和变量是啥意思、、、、这程序是我从二叉树上截的一部分,本来就跑不了。。。
谢谢,大括号外的指针和变量名都懂了,,
另再问一下,typedef必须加吗?为啥呢?
追答
如果不加typedef,你就是定义了两个变量,这两个变量可以直接用,编译器是要为他们分配内存的;如果加上,就是定义了两种变量类型,这两种变量类型如果int,float一样,作用类似于define,编译器并不为他们分配内存。所以加不加都能通过编译,但意义是不一样的。这样说你明白了吗?
好嘞啊啊啊啊
2013-07-29 · TA获得超过2612个赞
知道大有可为答主
回答量:1860
采纳率:66%
帮助的人:1198万
展开全部
如果单单这样写
struct BiTNode()
{
TelemType date;
struct BiTNode *l,*r
};
是声明一个结构体变量;

struct BiTNode()
{
TelemType date;
struct BiTNode *l,*r
}BiTNode,*BiTree;
//这样写的话相当于 声明变量的同时 定义一个就够变量,和定义一个结构体指针,也相当于
struct BiTNode()
{
TelemType date;
struct BiTNode *l,*r
};
struct BiTNode BiTNode;
struct BiTNode * BiTree;

T是指向结构体的指针
追问
额,我只问问结构体大括号外定义的指针和变量是啥意思、、、、这程序是我从二叉树上截的一部分,本来就跑不了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式