1 回答
TA贡献1712条经验 获得超3个赞
typedef struct LNode
{
int num,pwd;
struct LNode *next;
};
这段代码是结构体的定义部分,该结构体被命名为LNode,它具有2个int类型的变量:num与pwd,还具有一个指针变量,指针变量next所指向的是另一个LNode结构体。
结构体作为一个自定义的数据类型,在创建成功后是仅返回所分配内存的首地址,也就是一个指针,因此你需要使用指针变量来使其持久化。
结构体在默认情况下使用时,需要在结构体名称前添加struct关键字,这样程序才能知道你是在创建一个结构体的实例,你可以把结构体理解为自定义数据类型,使用方法也类似。
比如
int i,j,k; //声明3个变量,变量类型为int
struct LNode *i,*j,*k //声明3个指针变量,分别指向3个结构体,结构体类型为LNode
如果采用你这种定义,在以后,每次想创建一个LNode结构体实例时,都需要加一个struct关键字,这很令人反感,所以通常会利用typedef做一些改进:
typedef A B 的作用是将A与B在编程时视为相同的代码
例如
typedef int CHINA;
那么
int i;
就等同于
CHINA i;
因此将你的代码更改为:
typedef struct LNode //你的代码中虽然也用到了typedef关键字,但是替代项为空
{ //所以你的代码中删掉typedef也没有任何影响
int num,pwd;
struct LNode *next;
}N;
那最后一行代码就可以简化为
N *head,*p,*pt;
添加回答
举报