Below code is for inserting data to the front of the node ,just wanted to know we have reassigned start = tmp ,i.e. start will point to the inserted node which is now new first node but how

int add_begin(int data)
			struct node *tmp;
			tmp=malloc(sizeof(struct node));
			tmp->info=data;// put data
			tmp->link=start;// point to nxt node 
			start=tmp; // start will point to inserted node