C语言中typedef定义结构体指针的区别?
typedefstructBiTNode{intdata;structBiTNode*lchild,*rchild;//左右孩子指针}BiTNode,*BiTree;和t...
typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;//左右孩子指针}BiTNode,*BiTree;和typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;//左右孩子指针}BiTNode;BiTNode *BiTree;这两种定义的 *BiTree 有什么区别吗?为什么第二种在下图程序中编译通不过?求大神指点!谢谢啦困扰了很久了
展开
2个回答
展开全部
typedef用来取别名的。
你相当于给这个结构体取了一个结构体类型的别名BiTNode,之后你定义结构体变量就用BiTNode 变量名;
同理你给该结构体取了一个结构体指针类型的别名BiTree,之后你定义结构体指针就用
BiTree 变量名;
你第二种要么把BiTNode *BiTree前面的BiTNode去掉,要么另写一个
typedef BiTNode *BiTree;
你相当于给这个结构体取了一个结构体类型的别名BiTNode,之后你定义结构体变量就用BiTNode 变量名;
同理你给该结构体取了一个结构体指针类型的别名BiTree,之后你定义结构体指针就用
BiTree 变量名;
你第二种要么把BiTNode *BiTree前面的BiTNode去掉,要么另写一个
typedef BiTNode *BiTree;
追问
那我这样
BiTree Tree;
这样定义的指针Tree就是指向的结构体的指针吧
追答
对
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询