C/C++結構體詳解
阿新 • • 發佈:2018-12-07
前面沒有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是一個結構體指標型別,才可以強制型別轉換!