C ++, necesidad Motivo del error: no se puede convertir el parámetro 1 de 'char *' a 'const char * &'

Por qué no podemos convertir el puntero en un carácter -> TO-> una referencia a un puntero en un carácter constante

Estoy interesado en conocer el motivo del error de sintaxis cuando llamamos a foo_ptr. Cuando foo_char está permitido, ¿por qué no foo_ptr.
[Actualización 1.] Me alegraría saber la razón por la quefoo_char() está funcionando, ¿por quéfoo_ptr() no funciona ... ¿Qué sucede cuando el puntero aparece en la imagen?

[Actualización 2.] Tampoco funcionó en el compilador Dev C ++ versión 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;        
}        

Respuestas a la pregunta(3)

Su respuesta a la pregunta