Предположим, что у вас была следующая функция:
void test( const char*& pRef)
{
static const char somedata[] = { 'a' ,'b', 'c', '\0'};
pRef = somedata;
}
Если вы передали не-const char*
, тогда, когда test()
вернул компилятор, он потерял бы то, что p
указывает на const
.
Это по существу та же причина, что и в этом вопросе C ++ FAQ Lite (с указателями на указатели, а не на ссылки указателей):