Hello I'm new in C/C++ and I don't why the following structure has a pointer in the function name. struct node *pop(struct node *p, int *value) { struct node *temp; if(p==NULL) { printf(" The stack is empty can not pop Error\n"); exit(0); } *value = p->data; temp = p; p = p->link; free(temp); return(p); } Can someone can tell me why the pop function has a pointer. Thank you, Enjoy your life