2 qq 22210253 qq_22210253 于 2016.01.28 23:16 提问

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 * 型的呢?

图片说明

7个回答

github_27756899
github_27756899   2016.01.29 00:00
已采纳

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

qq_22210253
qq_22210253 谢谢大神!我看了一晚上没看出来
接近 2 年之前 回复
WinsenJiansbomber
WinsenJiansbomber   2016.01.29 09:10

一个是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;

qq_22210253
qq_22210253 为什么?这样做有什么意义?
接近 2 年之前 回复
qq_22210253
qq_22210253   2016.01.28 23:17
 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;
qq_22210253
qq_22210253   2016.01.28 23:17

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;

WinsenJiansbomber
WinsenJiansbomber   2016.01.29 09:11

这样了:
```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;


WinsenJiansbomber
WinsenJiansbomber   2016.01.29 09:12

这编辑器太糟糕了!

 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; 
Hkmyht
Hkmyht   2016.02.26 13:52

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!