永发信息网

求解释typedef struct node结构体的作用

答案:5  悬赏:0  手机版
解决时间 2021-03-20 07:59
  • 提问者网友:人傍凄凉立暮秋
  • 2021-03-19 11:02
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

struct library
{
char num[10];
char name[20];
char writer[20];
char classify[20];

};

typedef struct node
{
struct library data;
struct node *next;
}Node,*Link;
最佳答案
  • 五星知识达人网友:深街酒徒
  • 2020-01-19 09:55
typedef struct node //定义一个结构,名为node
{
struct library data; //成员之一data为 library结构类型
struct node *next; //成员之一next为指向 library结构类型的指针
}Node,*Link; //node的别名叫Node,指针别名叫Link
这样定义完之后,就可以这么用了:
Node anode;
Link pnode;
全部回答
  • 1楼网友:妄饮晩冬酒
  • 2020-06-19 20:13
没有使用typedef的声明时使用结构体名,使用了的,就要使用后面定义的名字了,
  • 2楼网友:夜风逐马
  • 2020-10-21 23:23
首先你要明白typedef的作用。typedef是C语言里的一个关键字,用来给一个类型别名(化名)。比如 typedef int size_t; typedef struct node Node; 第一个例子给内置类型int一个别名size_t。第二个例子给struct node一个别名Node。这里你看到了typedef的两个常用情况。第一个例子用以给一个通用类型更具化的别名,这往往会增加你的代码的可读性。第二个例子用以简化代码的繁复性,每当你需要声明一个struct node变量的时候,你可以直接用Node。 你的例子 typedef struct node {   struct library data;   struct node *next; } Node, * Link; 只是一个比较紧凑的写法,等价于如下写法: typedef struct node Node, * Link; struct node {   struct library data;   Link next;  // Node * next; } 注意我把typedef置于结构体node的定义之前(这是一个C成语)。它的好处是C编译器会先看见别名定义,所以在结构体node的定义里面我就已经可以用其别名Link或者Node来声明变量或指针了。你可以把typedef置于结构体node的定义之后,写作 struct node {   struct library data;   struct node * next; } typedef struct node Node, * Link; 但这样你就不能在node的定义里面用定义完才给的别名Node或Link了。所以你看到里面next的声明用的是struct node *。 最后, typedef struct node Node, * Link; 仍然是一个紧凑的写法,等价于: typedef struct node Node; typedef struct node * Link; 第一条语句给struct node(结构体node本身)一个别名Node。第二条语句给struct node *(指向node结构体的指针)一个别名Link。
  • 3楼网友:等灯
  • 2020-10-07 05:54
在C语言中,结构体变量定义的时候是这样的: struct 结构体名 变量名; 但是如果把struct 结构体名 定义成一个新类型的话,就可以不用写struct 所以 本来要 struct node* p; 的现在可以写成 Node* p 甚至 Link p (连*都不要了,因为typedef struct node* Link;
  • 4楼网友:渊鱼
  • 2020-08-28 12:57
1、一般C语言编译器环境,定义结构体需要: typedef struct node ,但很多C/C++编译器,可以直接写: struct node 2、结构体,可以存放不同的数据类型,诸如象数据库中的记录,网络游戏中通讯的数据结构等,采用结构体就很方便 3、更多交流参考我空间文章。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯