ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн

Модификатор const и указатели

Использование модификатора const при объявлении указателя может сбивать с толку, потому что это может означать один из двух вариантов в зависимости от его расположения. В приведенных ниже строках описаны оба варианта:

const int* cptrInt; // указатель на константу int* const ptrcInt; // константный указатель

Используя первый вариант объявления указателя, вы не можете изменять значение переменной, на которую указывает указатель cptrInt, но можете изме- нять значение самого указателя cptrInt. Если вы воспользуетесь вторым вариан- том, то все будет наоборот. Вы не сможете изменять значение самого указателя cptrInt, но сможете изменять значение того, на что cptrint указывает. Вы должны помнить различия в названиях этих указателей, которые указаны в комментари- ях. Можно использовать const в обеих позициях и сделать константами как сам указатель, так и то, на что он указывает.

В объявлении функции strcpy() показано, что параметр const char* scr опре- делен так, что функция не может изменять строку, на которую указывает scr.

Это не значит, что указатель scr не может быть изменен. Для того чтобы указа- тель стал константой, нужно при его объявлении указать char* const scr.

 

22