C++. Бархатный путь. Часть 1 Страница 69. Массив констант
|
Страница 69 из 82 Массив констант Как уже известно, имя массива является константным указателем. Именно поэтому и невозможно копирование массивов с помощью простого оператора присвоения. Константный указатель "охраняет" область памяти, выделенную для размещения данного массива. При этом значения элементов массива можно изменять в ходе выполнения программы. Защитить их от изменения можно с помощью дополнительного спецификатора типа const. При этом массив должен быть проинициализирован непосредственно в момент определения: const int cIntArray[] = {0,1,2,3,4,5,6,7,8,9}; Это аналог константного указателя на массив констант. Попытки изменения значения элементов массива пресекаются на этапе компиляции. cIntArray[5] = 111; // Ошибка. А вот от скрытого изменения значения элементы массива констант уберечь не удаётся. const char cCH[] = "0123456789"; char CH[] = "0123456789"; CH[15] = 'X'; /* Выполнение этого оператора ведёт к изменению строки cCH. */ cout << cCH << endl; Транслятор не занимается проверкой корректности выполняемых операций. На этапе выполнения программы язык C++ не предоставляет никаких средств защиты данных. |