首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C/C++ typedef 定義結構體陣列的語法解析

     編輯:程式設計綜合問答

代碼片段

typedef struct {
    ElemType data;
    int cur;
} compoent, SLinkList[MAXSIZE];

逐層解析

  1. struct { ... } 定義一個匿名結構體,包含兩個成員:data(型別 ElemType)與 cur(int)。
  2. typedef 為此結構體起別名:
  • compoent → 代表**單個結構體型別**(等同 struct { ... })。
  • SLinkList → 代表**陣列型別**,其為 MAXSIZE 個 compoent 組成的陣列。

等價展開

struct _Node {
    ElemType data;
    int cur;
};
typedef struct _Node compoent;
typedef compoent SLinkList[MAXSIZE];

使用範例

compoent node;           // 單個節點
node.data = ...;
node.cur = 1;

SLinkList list;          // 靜態鏈表陣列(MAXSIZE 個節點)
list[0].cur = -1;        // 頭節點游標
list[1].data = value;    // 數據節點

常見用途:靜態鏈表

此模式常用於教學實現「靜態鏈表」:用陣列模擬鏈表,cur 存儲下一節點的陣列下標,0 索引作頭節點,MAXSIZE-1 作備用鏈表頭。優點:無動態記憶體分配,適合嵌入式或考試環境。

注意

  • MAXSIZE 必須為常數宏或 const int。
  • C++ 中建議改用 using 或直接 struct Node { ... }; using SLinkList = std::array<Node, MAXSIZE>; 更現代。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved