В С++ Существует три ситуации, связанные с константами, указателями и объектами, на которые они указывают:
- указатель на константный объект;
- константный указатель на объект;
- константный указатель на константный объект.
В первой ситуации объект, на который указывает указатель, не может быть модифицирован, но можно установить указатель на что-нибудь другое:
const char* pstring = "Некоторый текст";
Во второй ситуации адрес, сохраненный в указателе, не может быть изменен, но объект, на который он указывает, может:
char* const pstring = "Некоторый текст";
И, наконец, в третьей ситуации как указатель, так и объект, на который он указывает, определены как константы, а потому никогда не могут быть изменены:
const char* const pstring = Некоторый текст";
Все это касается указателей любого типа. Указатель на тип char использован исключительно для примера.
- указатель на константный объект;
- константный указатель на объект;
- константный указатель на константный объект.
В первой ситуации объект, на который указывает указатель, не может быть модифицирован, но можно установить указатель на что-нибудь другое:
const char* pstring = "Некоторый текст";
Во второй ситуации адрес, сохраненный в указателе, не может быть изменен, но объект, на который он указывает, может:
char* const pstring = "Некоторый текст";
И, наконец, в третьей ситуации как указатель, так и объект, на который он указывает, определены как константы, а потому никогда не могут быть изменены:
const char* const pstring = Некоторый текст";
Все это касается указателей любого типа. Указатель на тип char использован исключительно для примера.
Комментариев нет:
Отправить комментарий