数据结构定义结构体的问题如何解决?

如题所述

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;
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网