结构体中在大括号外的变量和指针分别代表什么?同时那个指针这么用是什么意思?
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);
}
} 展开
{
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);
}
} 展开
展开全部
typedef struct _BiTNode//是否忘记打typedef?要不你底下的BiTree T是不能通过编译的!因为按你的写法BiTree是一个变量而不是一个变量类型,另外请去掉两个圆括号,还有为防止冲突,前边加下划线
{
TelemType date;
struct _BiTNode *l,*r;//老大,记得加分号!
}BiTNode,*BiTree;
意思是定义一个结构体类型(用作链表的一个节点),BiTNode就是该结构体,而BiTree是一个BiTNode类型的指针。
BiTree T是说参数T是一个指针,该指针是BiTree类型的,根int * ,float* 一样,就是一个指针而已。
{
TelemType date;
struct _BiTNode *l,*r;//老大,记得加分号!
}BiTNode,*BiTree;
意思是定义一个结构体类型(用作链表的一个节点),BiTNode就是该结构体,而BiTree是一个BiTNode类型的指针。
BiTree T是说参数T是一个指针,该指针是BiTree类型的,根int * ,float* 一样,就是一个指针而已。
追问
额,3q,,我只问问结构体大括号外定义的指针和变量是啥意思、、、、这程序是我从二叉树上截的一部分,本来就跑不了。。。
谢谢,大括号外的指针和变量名都懂了,,
另再问一下,typedef必须加吗?为啥呢?
追答
如果不加typedef,你就是定义了两个变量,这两个变量可以直接用,编译器是要为他们分配内存的;如果加上,就是定义了两种变量类型,这两种变量类型如果int,float一样,作用类似于define,编译器并不为他们分配内存。所以加不加都能通过编译,但意义是不一样的。这样说你明白了吗?
展开全部
如果单单这样写
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是指向结构体的指针
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是指向结构体的指针
追问
额,我只问问结构体大括号外定义的指针和变量是啥意思、、、、这程序是我从二叉树上截的一部分,本来就跑不了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询