2013-06-04 3 views
-3
#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) 이중 연결 목록에 삽입하는 방법? 인쇄 방법을 설명하십시오.우리는 왜 포인터에 대한 포인터를 사용합니까?

+0

이 [wiki] (http://en.wikipedia.org/wiki/Doubly_linked_list)를 읽었습니까? – mvp

+1

포인터를 사용하는 이유는 무엇입니까? –

답변

1

포인터 또는 이중 포인터의 포인터는 가능한 값이 다른 포인터 변수의 메모리 주소 인 변수입니다.

당신은 좋은 대답이 here입니다, 나는 그가 나보다 잘 설명 할 수 있다고 생각합니다.

또한 link을 확인할 수 있습니다.

+0

링크 전용 답변은 SO, 특히 다른 SO 응답 링크에만 사용하는 것이 좋습니다. – mvp

2

종종 포인터에 대한 포인터는 함수가 변경할 수있는 포인터를 함수에 전달하려는 경우에 사용됩니다.

관련 문제