Ссылки на значения для постоянных указателей

#c #pointers #constants #lvalue

#c #указатели #константы #значение lvalue

Вопрос:

Рассмотрим следующее:

1) const char* const

Выше мы говорили, что существует постоянный указатель (т. Е. сам указатель не может быть изменен), указывающий на постоянный символ (т. Е. фактический символ, на который он указывает, является const)

Как насчет этого:

2) const char*amp;

В приведенном выше примере говорится, что это non-const ссылка на значение, указывающая на const char* , или это const ссылка на значение, указывающая на char* ?

Как насчет этого:

3) const char* constamp;

non-const ссылка на значение, указывающая на a const char* const , const ссылка на значение, указывающая на a char* const , или const ссылка на значение, указывающая на a const char* ?

Кто-нибудь объяснит, пожалуйста.

Комментарии:

1. У вас не может быть const ссылок на значения l, ссылки являются постоянными по своей природе. Путем исключения это дает ответ для каждого из объявлений.

2. Хорошо, спасибо!

3. У ссылки нет const модификатора, отличного от типа, на который она ссылается. Второй const модификатор указателя означает, что вы не можете изменить, на какой объект он указывает, но это уже верно для ссылок. Утверждение типа «неконстантная ссылка на значение, указывающая на const char* const » не имеет смысла для C , потому что в нем есть все возможные const , нет перспективы, с которой его можно было бы считать неконстантным const .

4. Теперь я это понимаю. Спасибо.

5. В языке C нет ссылок как функции. Этот языковой тег не подходит для этого вопроса.