Студопедия

КАТЕГОРИИ:

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


Списки.




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

Элемент любой дин. стр-ры – это структура struct, содержащая по крайней мере 2 поля – для хранения данных и для указателя.

В стеке и очереди 2 операции: добавление и выборка.

Бинарные деревья: узлы, каждый из которых содержит. Кроме данных. Не более 2х ссылок на различные бинарные деревья. На каждый узел имеется ровно 1 ссылка. Начальный узел – корень дерева. Для описания с помощью рекурсивных алгоритмов.

Указатели. На функцию, на объект, на void.Отличаются свойствами и набором допустимых операций.

1. Указатель на функцию содержит адрес в сегменте кода, по которому располагается исполняемый код функции, то есть адрес, по которому передается управление при вызове функции. Указатели на функции используются для косвенного вызова функции (не через ее имя, а через обращение к переменной, хранящей ее адрес), а также для передачи имени функции в другую функцию в качестве параметра. Указатель функции имеет тин «указатель функции, возвращающей значение заданного типа и имеющей аргументы заданного типа»: int (*fun) (double, double);

2. Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного). Простейшее объявление указателя на объект (в дальнейшем называемого просто указателем) имеет вид: тип *имя;

где тип может быть любым, кроме ссылки и битового поля, причем тип может быть к этому моменту только объявлен, но еще не определен (следовательно, в структуре, например, может присутствовать указатель на структуру того же типа).

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

Размер указателя зависит от модели памяти. Можно определить указатель на указатель и т. д.

3. Указатель на void применяется в тех случаях, когда конкретный тип объекта, адрес которого требуется хранить, не определен (например, если в одной и той же переменной в разные моменты времени требуется хранить адреса объектов различных типов).

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


Поделиться:

Дата добавления: 2015-04-18; просмотров: 55; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты