From what I've seen, the * symbol usually appears before a variable of basic types (eg. int ). However, I've come across a line of code that is as follows:
insert(int key, struct node **leaf)
{
    if( *leaf == 0 )
        {
        *leaf = (struct node*) malloc( sizeof( struct node ) );
        (*leaf)->key_value = key;
        /* initialize the children to null */
        (*leaf)->left = 0;    
        (*leaf)->right = 0;  
    }
    else if(key < (*leaf)->key_value)
    {
        insert( key, &(*leaf)->left );
    }
    else if(key > (*leaf)->key_value)
    {
        insert( key, &(*leaf)->right );
    }
}
How does the * symbol work when it comes before a structure (eg. struct node*)?
Thanks.
 
     
    