Please explain me the whole concept of passing pointer by reference

what if we pass print(&head) in function call

image
*& iis used when u need to have permanent update in the head node variable

image
u use * head
when u dont need permanent update in head

this is similar to pass by refernce and pass by value
in pass by value updates are bound to the function itself
and in refernce passing
the updates mades are reflected in the callling funciton