前言
在学习《数据结构导论》的过程中,发现了一个很神奇的东西,当时不理解是怎么回事,感觉看不懂,大家应该知道,这本书在考试的时候,对代码是有考察的,并且是面向C语言的,所以我就进行了一番研究,下面和大家分享一下!PS:是在C语言环境下!!!
分享
- Typedef:
- 这个东西表示的是:为复杂声明定义简单的别名,说白了,就是定义一个结构类型要用他
- 书上的一个例子:
typedef struct node
{
DataType date;//数据域
struct node*next;//指针域
}
Node,*LinkList;
于是在声明变量的时候就可以:Nod nod1;(如果没有typedef就必须用struct Node nod1;来声明)
这里的Nod实际上就是struct Node的别名。Nod==struct Node
这里也可以不写Node(于是也不能struct Node nod1;了,必须是Nod nod1;)
typedef struct
{
DataType date;//数据域
struct node*next;//指针域
}
Node,*LinkList;
- 两者的区别:
typedef struct tagMyStruct
{
int LNum;
long ILength;
}
My Struct;
上面的tagMyStruct是标识符,MyStruct是变量类型(相当于int,char等)
这个语句完成的是两个操作:
①定义一个新的结构类型:
typedef struct tagMyStruct
{
int LNum;
long ILength;
};
tagMyStruct叫做“tag”,就是“标签”的意思,只是一个临时名字,不管有没有typedefstruct关键字和tagMyStruct一起,构成了这个结构类型,这个结构都存在。
②typedef为这个新的结构起了一个名字叫做MyStruct,所以MyStruct实际上相当于struct tagMyStruct。
typedef struct tagMyStruct
{
int LNum;
long ILength;
}
My Struct;
声明后申请结构变量的方法有两种:
- struct tagMyStruct变量名
- MyStruct变量名
小结
以上是我对这一部分的内容的理解,希望可以帮助到大家,同时如果大家有更好的理解的话,欢迎在评论处留言,大家相互交流一下!!!