为什么我们使用指针指针

时间:2013-06-04 06:53:58

标签: c pointers linked-list

#include <stdio.h>
#include <stdlib.h>

struct llnode {
    int data;
 struct    llnode *next;
};
void insert (struct llnode **head, int data);


int
main () {
    struct llnode *head;
    head = NULL;
    printf("starting\n");
    insert(&head, 4);



    return 0;
}

void
insert (**struct llnode **head**, int data) {--> why do we use a pointer to a pointer 
    printf("insert %0d\n", data);

struct    llnode *l = malloc(sizeof(struct llnode));
    l->data = data;
    l->next = NULL;

    if (*head == NULL) {
        *head = l;
    } else {
struct        llnode *tmp = *head;
        while (tmp->next != NULL) {
            tmp = tmp->next;
        }
        tmp->next = l;
    }
}

1)为什么我们使用指向指针的指针。可以用一个例子来解释。 2)如何插入双向链表? 请告诉我,请解释如何打印

2 个答案:

答案 0 :(得分:2)

当您想要向函数传递函数可以更改的指针时,通常会使用指向指针的指针。

答案 1 :(得分:1)

指向指针或双指针的指针是变量,其可能的值是其他指针变量的内存地址。

你有一个很好的答案here,我认为他可以比我更好地解释它。

您也可以查看link