今天看到c中堆栈的实现,由链表实现。其中初始化的时候,要是指向指针的指针,如下:
void StackInitiate(LSNode **head) {
*head = (LSNode *)malloc(sizeof(LSNode));
(*head)->next = NULL;
}这该怎么理解呢?
首先,head是一个指针,链表的头指针,然后我要在函数中修改它,并且要保存值,那么,就应该是指针的指针了,要不然是不会保存的。
今天看到c中堆栈的实现,由链表实现。其中初始化的时候,要是指向指针的指针,如下:
void StackInitiate(LSNode **head) {
*head = (LSNode *)malloc(sizeof(LSNode));
(*head)->next = NULL;
}这该怎么理解呢?
首先,head是一个指针,链表的头指针,然后我要在函数中修改它,并且要保存值,那么,就应该是指针的指针了,要不然是不会保存的。