C++高手进来帮我解释下!

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:51:16
解释下下面这段东东
typedef struct LNode
{
int num,pwd;
struct LNode *next;
}LNode,*LinkList;
它为什么可以这样?typedef是什么玩意儿
那最后的那个LNode和*LinkList到底是变量还是类型名?

typedef 是表式定义一种类型,这种类型与前面的类型相同。
就像是给一种类型取个别名一样。
比如typedef int abc;那么abc就是一种类型,且是int类型;
int a;就与abc a;等价了。
typedef struct LNode //定义一个结构体,结构体名称是LNode;
{
int num,pwd;
struct LNode *next;
}LNode,*LinkList; //LNode是这个结构体的别名,LinkList前面加了*,所以他是指针类型,指向LNode这个结构体的指针类型
如果LNode p;是定义一个LNode结构体;
而 LinkList q;则是定义了一个指向LNode结构体的指针;

type就是对系统给的类型(int,float)重新取一个名字,用起来顺手
typedef struct LNode
{
int num,pwd;
struct LNode *next;
}LNode,*LinkList;
你定义了结构体类型LNode,用它可以定义变量,现在LNode,*LinkList就是变量
如果是
typedef struct
{
int num,pwd;
struct LNode *next;
}LNode;
LNode就是类型名(如int,float),用它可以定义变量

typedef 类型重定义。功能

例如 typedef int MT;
那么在以后的程序中 int i; 和 MT i;效果是一样的。
这个功能是为了方便用户定义自己的数据类型,并方便记忆和应用

你的情况
typedef struct LNode
{
int num,pwd;
struct LNode *next;
}LNode,*LinkList;
这段代码