Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


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




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

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

const int iDim=3;

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

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

 

 

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

Множество всех массивов из элементов типа является типом данных, для обозначения которого используется конструкция вида , которая не является идентификатором. Например, множество всех массивов из 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 Имя_Указателя = АдресОбъекта;

 

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

 





Поделиться с друзьями:


Дата добавления: 2016-03-27; Мы поможем в написании ваших работ!; просмотров: 299 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2160 - | 2048 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.