I know how the code work. But does not know Why?
What are the differences between pointers?
struct List{
   int val;
   List *next;
}
/// where is the different between fun1 and fun2 receiving the List
void fun1(List **head){}
void fun2(List *head){}
int main(){
    List *head;
     /// where is the different between fun1 and fun2 passing the List
    fun1(&head);
    fun2(head);
}
 
     
    