结构体的两种声明含义
小弟我看了书上有段代码不解就是:
BTCHINALR *q;
struct nodel *s[32];
而其中BTCHINALR 和struct nodel是一个结构体啊,如下
typedef struct nodel
{
int data;
struct *lchild,*rchild;
}BTCHINALR;
这里的BTCHINALR 和struct nodel应该指一个东东啊,但是他为什么会这样写啊,为什么不写成一个东东啊,不懂
大哥高见????
谢谢
[解决办法]
相同的
[解决办法]
为了便于理解
[解决办法]
//定义类nodel,给类一个别名BTCHINALR
typedef struct nodel
{
int data;
struct *lchild,*rchild;
}BTCHINALR;
//同时定义类nodel和对象BTCHINALR,
struct nodel
{
int data;
struct *lchild,*rchild;
}BTCHINALR;//注意 BTCHINALR不是別名哦;
[解决办法]
BTCHINALR *q;//代表的是树的根接点
struct nodel *s[32];//代表其他叶子接点
我的的理解,不知道对不对
[解决办法]
Mobidogs() ( ) 信誉:100 Blog 2007-2-2 0:49:22 得分: 0
//定义类nodel,给类一个别名BTCHINALR
typedef struct nodel
{
int data;
struct *lchild,*rchild;
}BTCHINALR;
//同时定义类nodel和对象BTCHINALR,
struct nodel
{
int data;
struct *lchild,*rchild;
}BTCHINALR;//注意 BTCHINALR不是別名哦;
所以说是一样的~~~~
[解决办法]
BTCHINALR *q;
struct nodel *s[32];
两个一样...
可能是作者装B....-_-
[解决办法]
一样的东西.
[解决办法]
typedef struct nodel
{
int data;
struct *lchild,*rchild;
}BTCHINALR;
struct * ? 是什么东东?
[解决办法]
结构体是种数据类型;
用 typedef 给此类型(这个结构体)起个别名而已;
to LS: 本结构指针类型;
[解决办法]
分析:
typedef struct nodel //nodel为结构体的名字
{
int data;
struct *lchild,*rchild;
}BTCHINALR;
若我们的结构体声明中无typedef关键字,那么以后我们在使用该结构体的时候都必须写成struct nodel,即时时刻刻要在结构体的名称前加上struct关键字。
有了typedef关键字以后struct nodel就有了一个别名(好记的名字,好比一个人的外号)BTCHINALR,那么我们在以后的使用过程中就可以直接叫这个外号啦,即:BTCHINALR *q;
是不是使用起来回更方便呢?
主要是掌握typedef关键字的意义,你就明白了。