C语言中typedef定义结构体指针的区别?

typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;//左右孩子指针}BiTNode,*BiTree;和typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;//左右孩子指针}BiTNode;BiTNode *BiTree;这两种定义的 *BiTree 有什么区别吗?为什么第二种在下图程序中编译通不过?求大神指点!谢谢啦困扰了很久了

typedef用来取别名的。
你相当于给这个结构体取了一个结构体类型的别名BiTNode,之后你定义结构体变量就用BiTNode 变量名;
同理你给该结构体取了一个结构体指针类型的别名BiTree,之后你定义结构体指针就用
BiTree 变量名;
你第二种要么把BiTNode *BiTree前面的BiTNode去掉,要么另写一个
typedef BiTNode *BiTree;追问

那我这样

BiTree Tree;
这样定义的指针Tree就是指向的结构体的指针吧

追答

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-01-09
bit?
工人?
相似回答