回覆列表
-
1 # 使用者3202111406170
-
2 # 使用者7223656964639
在上面的程式碼中,你定義了一個指向結構體Node的指標,即Node*型。所以,初始化函數里面:
Status InitList(LinkList *L) 的*L,是LinkList型變數,即頭指標;將頭指標作為引數傳遞進函數里。
*L = (LinkList)malloc(sizeof(Node)),這裡,動態分配一個Node型別的空間,並返回LinkList*型空間,儲存單元的首地址儲存到指標變數L中(這裡應該是LinkList*)。
(*L)->next = NULL,這裡(*L)就是頭指標,這句的意思是頭指標指向的下一個結點(即連結串列的第一個結點)為空,即初始化操作。
頭結點其實一般只定義一個指標,方便理解,資料域一般為空的。你也可以把typedef struct Node *LinkList; 寫成:
typedef struct {
Node *head;
}LinkList; 這樣就比較好理解了。
答主,是我錯了,之前沒學好啊,因為他這裡是傳一個指標進來,函式並不能修改指標本身,只能修改指標指向的內容,要想修改指標,有兩種方式:1.引用2.指標的指標,也就是二級指標了