typedef与struct的结合

struct的定义与初始化

//定义方法一(先定义,后初始化):
struct Book{
    char name[20];
    int id;
};
//初始化
Book book={"bookName",15}

//定义方法二(定义的同时初始化):
struct Book{
    char name[30];
    int id;
}book={"bookName",15};
//方法二不写Book也可以

typedef与struct结合

写法一:

typedef struct Book{
	int id;
}Book;

初始化方法:

一、用重新定义的名字

Book book;

二、用原始方法

struct Book book

写法二:

typedef struct {
	int id;
}Book;

初始化方法:

仅能使用方法一:

Book book;

当定义的结构体名字加上*时

例如:

typedef struct LNode {
	ElemType data;
	struct LNode *next;
}LNode,*LinkList;  //LinkList为LNode类型的指针

分别初始化:

//这两种的数据类型不同
LNode node; // 自己定义的数据类型
LinkList list; // 自己定义的数据类型的指针  就等于LNode *node;  LinkList *list 就相当于二重指针
//区别在于调属性时候的写法
node.data = 1;//正确写法且只有这一种写法

list->data=1;//正确写法
(*list).data=1;//正确写法
list.data=1;//错误写法
上一篇:考研数据结构100题


下一篇:链表的逆转