C/C++结构体详解

版权声明:感谢查看,转载请注明原地址,知识与您同在。 https://blog.csdn.net/a1023182899/article/details/84641301

前面没有typedef的,}后面的都是结构体变量,结构体变量数组,结构体指针变量,都是变量。
有typedef的,}后面的都是类型,是可以拿来构建变量的。

typedef struct FreAarea//定义一个空闲区说明表结构
{
	long size;   //分区大小
	long address; //分区地址
	int state;   //状态
}ElemType;

ElemType data;
ElemType是一个结构体类型,就是一个别名等于struct FreAarea,不是结构体变量

typedef struct DuLNode// 线性表的双向链表存储结构
{
	ElemType data;
	struct DuLNode *prior; //前趋指针
	struct DuLNode *next;  //后继指针
}DuLNode, *DuLinkList;//*DuLinkList;直接定义了指向结构体类型的指针,但是这种写法没有为结构体起一个别名。

DuLNode是一个结构体类型,就是一个别名等于struct DuLNode,不是结构体变量
DuLinkList是一个结构体指针类型,是一个指向结构体类型的指针

DuLinkList block_first; //头结点
//等价于struct DuLNode *block_first;//头结点

block_first = (DuLinkList)malloc(sizeof(DuLNode));

也正是因为DuLinkList是一个结构体指针类型,才可以强制类型转换!

猜你喜欢

转载自blog.csdn.net/a1023182899/article/details/84641301