Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Пример 4.2 - Выделение памяти под массив



Пример 4.1 - Создание (определение) массивов

char cArray[]={‘a‘, ‘b‘, ‘c‘, ‘d‘};

const int iDim=3;

int iMassiv[iDim]={1, 2, 3};

float fA[4]={0.1f, 0.2f, 0.3f, 0.5f};

 

Встретив в тексте программы указание о создании массива из элементов типа , компилятор выделяет блок памяти объема равного * и размещает в нем элементы массива в порядке, указанном в его определении.

Множество всех массивов из элементов типа является типом данных, для обозначения которого используется конструкция вида , которая не является идентификатором. Например, множество всех массивов из 10 объектов типа double образует тип double[10]. Встроенные операции над массивами в языке Си отсутствуют.

Правила языка позволяют программисту на этапе разработки приложения выделять память для массивов, элементы которых будут вычисляться позднее. Для этого следует воспользоваться специальной командой. В ней нужно указать тип элементов массива, его имя и размер, который должен быть положительной константой типа int

 

Type Name[константа типа int];

 

Пример 4.2 - Выделение памяти под массив

 

// Для массива из 10 элементов типа float

float fArray[10];

// Для массива из 13 указателей на int

const int Dim=13;

int* pInt[Dim];

 

 

4.2 Указатели и массивы. Доступ к элементам массивов

 

Указатели были введены в 3.3. Так называются переменные, которые используются для хранения адресов. Там же было сказано о том, что получить адрес объекта можно по его имени при помощи операции, обознача­е­мой символом &. Получить объект по указателю с его адресом можно при помощи операции, обозначаемой символом *. Обе операции являются унарными и имеют второй приоритет.

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

 

сonst Тип* Имя=АдресКонстанты;

 

В этом случае контроль за использованием такого указателя возлагается на компилятор.

 

Пример 4.3 - Указатели на константу

 

// Создание константы типа int

const int constInt=3;

// Создание указателя на константу

const int* pconstInt=&constInt;

// Попытка изменения константы является ошибкой

*pconstInt=1; // ошибка

// Попытка создания указателя на константу является ошибкой

int* p=&constInt; // ошибка

 

Для того, чтобы запретить изменение значения указателя в ходе выполнения программы, необходимо включить в его определение служебное слово const.

 

Тип* const Имя_Указателя=АдресОбъекта;

 

Такие указатели называются указателями-константами.

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.