C ++, нужна причина ошибки: невозможно преобразовать параметр 1 из 'char *' в 'const char * &'

Когда мы не можем конвертировать указатель на символ -> TO-> ссылку на указатель на постоянный символ

Мне интересно знать причину синтаксической ошибки, когда мы вызываем foo_ptr. Когда разрешено foo_char, почему бы не foo_ptr.
[Обновление 1.] Я был бы рад узнать причину, по которойfoo_char() работает, почемуfoo_ptr() не работает .. Что происходит, когда на картинке появляется указатель.

[Обновление 2.] Также не работало в компиляторе Dev C ++ версии 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;        
}        

Ответы на вопрос(3)

Ваш ответ на вопрос