C ++, Necessário motivo do erro: não é possível converter o parâmetro 1 de 'char *' para 'const char * &'

Whey não podemos converter ponteiro em um caractere -> TO-> uma referência a um ponteiro em um caractere constante

Estou interessado em saber o motivo do erro de sintaxe quando chamamos foo_ptr. Quando foo_char é permitido, por que não foo_ptr.
[Atualização 1.] Ficaria feliz em saber o motivo pelo qualfoo_char() está funcionando, por quefoo_ptr() não está funcionando .. O que acontece quando o ponteiro aparece na image

[Atualização 2.] Também não funcionou no compilador Dev C ++ versão 4.9.9.2 ..

//code
//OS : Win XP
//Env: VC++ 2008 

//NOT ALLOWED
void foo_ptr(const char * & ptr) //reference to a pointer to a constant character         
{         
        return;         
}        


//allowed        
void foo_char(const char & p_Char) //reference to a constant character        
{         
        return;        
}        

int main()        
{        
        char ch = 'd';        
        char *ptr =  "anu";        

        foo_char(ch);         
        foo_ptr(ptr); //NOT ALLOWED syntax error, vc++, 2008        

        return 0;        
}        

questionAnswers(3)

yourAnswerToTheQuestion