一个关于结构体的疑问?
来源:百度知道 编辑:UC知道 时间:2024/05/18 02:14:44
typedef struct BiTNode
{TElemType data;
struct BiTNode *lchild, *rchild;
} BiTNode;
typedef struct BiTNode中BiTNode,中间的BiTNode和最下面的BiTNode有什么区别?哪个是结构体名,哪个是成员?定义一个结构体变量用哪个?
{TElemType data;
struct BiTNode *lchild, *rchild;
} BiTNode;
typedef struct BiTNode中BiTNode,中间的BiTNode和最下面的BiTNode有什么区别?哪个是结构体名,哪个是成员?定义一个结构体变量用哪个?
这样写也是对的:原文的第一个BiTNode可省略,也可换成任一个,例 SBD;
typedef struct SBD
{TElemType data;
struct BiTNode *lchild, *rchild;
} BiTNode;
BiTNode是一个自定义类型,而这个类型中又有自身的类型。
再看:
typedef int INTER;
INTER a=0;
就相当于
int a+0;
所以 BiTNode node;
就相当于 struct SBD node;
node就是上面结构体的一个对象!
BiTNode是结构体名
里面的是成员
truct BiTNode *lchild,是把lchild申名为指向BiTNode的指针,即结构体里有一个数据,两个指针,而这两个指针又会指向结构体型
typedef struct BiTNode是C中的定义形式
typedef struct BiTNode中BiTNode,中间的BiTNode和最下面的BiTNode没有区别
在C++中可以这样直接定义结构体
struct BiTNode
{
TElemType data;
struct BiTNode *lchild, *rchild;
}
其中BiTNode就是结构体的名字,data,lchild,rchild是结构体的成员
可以直接用BitNode定义结构体变量
第一个是建立的一个新的结构体数据类型;
第二个是成员名
第三个是你要建立的结构体名