数据结构中结构体的typedef说明
例一:
typedef的作用是起别名
typedef int status; 就是给int起了一个别名叫status
status x; 就等价于 int x;
例二:
typedef int * pointer;
可以把typedef int * pointer看作 typedef (int * )pointer
也可以把typedef int * pointer看作typedef int (*pointer)
作者个人觉得看作typedef int (*pointer)比较好,因为数据结构里链表定义就是这种。
pointer p; 就等价于 int *p;
例三
先看个程序
#include<iostream>
using namespace std;
typedef int mm,*nn;//给int起两个别名mm 和*nn
int main(){
mm a=2; //相当于int a=2;
nn p;//相当于int *p
p=&a;//把a的地址赋值给p
cout<<*p<<endl;
return 0;
}
例四
接下来看数据结构中熟悉的单链表定义
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
就是给struct LNode起了两个别名 一个叫LNode,另一个叫LinkList;
类比例三
struct LNode{
ElemType data;
struct LNode *next;
} 这一块就相当于例三的int ;
所以 LinkList L 就等价与LNode *L。