1. 程式人生 > >C/C++結構體詳解

C/C++結構體詳解

前面沒有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是一個結構體指標型別,才可以強制型別轉換!