c语言指针info,C语言指针深入理解

前几天看了一个程序,里面一段关于指针的代码让我非常纠结,看了很久才看懂,在这里将将其记录下来,希望能对大家有一定的帮助,先看示例程序(编译器gcc):

#include

#include

#include

typedef struct list_node

{

int data;

struct list_node *next;

}list_node, list, *plist_node;

static list *lst = NULL;

void insert(int dat)

{

plist_node pnode = malloc(sizeof(list_node));

assert(pnode != NULL);

pnode->data = dat;

pnode->next = lst;

lst = pnode;

}

int remove_item(int dat)

{

int cnt = 0;

plist_node pn, *ppn;

ppn = &lst;

while((pn = *ppn) != NULL)

{

if(pn->data == dat)

{

*ppn = pn->next;

free(pn);

++cnt;

}

你可能感兴趣的:(c语言指针info)