Информатика и технология программирования

       

Неизменяемые переменные (константы)


В Си++ введен дополнительный контроль за изменением значений переменных. Ключевое слово const, используемое при определении и инициализации переменной, запрещает ее изменение, что контролируется транслятором при ее дальнейшем использовании. Такая же возможность существует и для формальных параметров функции, например:


const int n=5;
n++; // Запрещено


int xxx(const int m)
{
m++; // Запрещено


}

Применительно к указателю const может использоваться в двух вариантах, как к значению указателя (адресу), так и к указуемой переменной:



-при использовании cons t применительно к указуемой переменной разрешается модифицировать сам указатель при помощи присваивания и операций адресной арифметики, а операции косвенного обращения по указателю запрещены. Такой указатель называется указателем на постоянный объект:


const char * p;
p = "1234567890"; // Разрешено


p + =3; // Разрешено


*(p+3) = '3'; // Запрещено


(*p)++; // Запрещено



-при использовании const применительно к указателю запрещается менять значение указателя после инициализации, в том числе средствами адресной арифметики. Такой указатель называется постоянным указателем:


char const* p = "1234567890";
char c;
(*p) = '3'; // Разрешено


p++; // Запрещено


c = *(p+3); // Запрещено

Полная фиксация указателя и адресуемой им переменной возможна в таком виде :


const char const* p = "1234567890";



Содержание раздела