漠水 发表于 2014-11-19 10:29:24

重定义一个结构之后的指针表示的和指向这个结构指针表示的有啥不同?

代码如下:
这里的*T与tree *l,*r有啥区别,是*T=tree?
在学习链表的时候通常申请节点都是tree?多重指针是咋回事,有点不懂,求指点

<P>#include<stdio.h>

#include<stdlib.h>
typedef char ElemType; //????????
//二叉树</P>
<P>typedef struct tree
{
char n;
struct tree *l ,*r; //tree *l表示指向这个结构类型

}tree,*T; //重命名,*T表示这个函数是一个指针</P>
<P> </P>
<P>
void creat(T *t)
{
char c;
scanf("%c",&c);
if(' '==c)
{
*t=NULL;
}
else
{
*t=(tree *)malloc(sizeof(tree));
(*t)->n=c;
creat(&(*t)->l);
creat(&(*t)->r);
}


}
void main()
{}</P>



慈慈乱了 发表于 2014-11-19 10:29:25

*T 和*l肯定有区别 一个是对树的类型的声明,就像int指针一样,一个是这个书结构体里面的东西!

漠水 发表于 2014-11-19 10:36:47

试了一下
tree *p;
p=*t没问题

漠水 发表于 2014-11-20 11:21:10

慈慈乱了 发表于 2014-11-19 10:29
*T 和*l肯定有区别 一个是对树的类型的声明,就像int指针一样,一个是这个书结构体里面的东西!

是不就像一个是int *,一个是int一样

lyjztz 发表于 2014-11-27 11:21:29

不懂
页: [1]
查看完整版本: 重定义一个结构之后的指针表示的和指向这个结构指针表示的有啥不同?