数据结构定义结构体的问题 ?

typedef struct LNode 
{
int num,pwd; 
struct LNode *next;
};
struct LNode *head,*p,*pt; 
这一段程序的意思详细解释下

ITMISS
浏览 718回答 1
1回答

交互式爱情

typedef struct LNode{int num,pwd;struct LNode *next;};这段代码是结构体的定义部分,该结构体被命名为LNode,它具有2个int类型的变量:num与pwd,还具有一个指针变量,指针变量next所指向的是另一个LNode结构体。结构体作为一个自定义的数据类型,在创建成功后是仅返回所分配内存的首地址,也就是一个指针,因此你需要使用指针变量来使其持久化。结构体在默认情况下使用时,需要在结构体名称前添加struct关键字,这样程序才能知道你是在创建一个结构体的实例,你可以把结构体理解为自定义数据类型,使用方法也类似。比如int i,j,k; //声明3个变量,变量类型为intstruct 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;
打开App,查看更多内容
随时随地看视频慕课网APP