struct {}a,*p 的问题

 typedef struct BTNode {                //B-树的结构
    int keynum;                     //n
    struct BTnode *parent;          //指向双亲
    KeyType key[m + 1];             //K(i)
    struct BTNode *ptr[m + 1];      //A(i)
    //Record *recptr[m + 1];        //记录指针向量
}BTNode, *BTree;

BTree是指向结构的指针,BTNode * 也是,那我为什么不能把BTree型的值赋给BTNode * 型的呢?

图片说明

struct BTnode *parent;改为struct BTNode *parent; 注意大小写。

 typedef struct BTNode { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;

typedef struct BTNode { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;

一个是BTNode, 一个是* BTree,类型本就不同。还有定义结构体应该这样:
typedef struct { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;

这样了:
```typedef struct { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;


这编辑器太糟糕了!

 typedef struct  {                //B-树的结构
    int keynum;                     //n
    struct BTnode *parent;          //指向双亲
    KeyType key[m + 1];             //K(i)
    struct BTNode *ptr[m + 1];      //A(i)
    //Record *recptr[m + 1];        //记录指针向量
}BTNode, *BTree; 

问题原因:我也把楼主代码拷贝了。代码的确打错了!
图片说明

shtruct dfdf * p; 这应该也算一个新结构体吧。 反正可以编译通过!

BTree是指向结构的指针,BTNode * 也是,那我为什么不能把BTree型的值赋给BTNode * 型的呢?
这是可以转的。。