КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Списки.Память выделяется отдельными блоками, связанными друг с другом указателями. Такой способ организации данных называется динамическими структурами данных, тк их размер меняется во время выполнения программы. Дин. структуры: линей. списки, стеки, очереди, бинарные деревья. Элемент любой дин. стр-ры – это структура struct, содержащая по крайней мере 2 поля – для хранения данных и для указателя. В стеке и очереди 2 операции: добавление и выборка. Бинарные деревья: узлы, каждый из которых содержит. Кроме данных. Не более 2х ссылок на различные бинарные деревья. На каждый узел имеется ровно 1 ссылка. Начальный узел – корень дерева. Для описания с помощью рекурсивных алгоритмов. Указатели. На функцию, на объект, на void.Отличаются свойствами и набором допустимых операций. 1. Указатель на функцию содержит адрес в сегменте кода, по которому располагается исполняемый код функции, то есть адрес, по которому передается управление при вызове функции. Указатели на функции используются для косвенного вызова функции (не через ее имя, а через обращение к переменной, хранящей ее адрес), а также для передачи имени функции в другую функцию в качестве параметра. Указатель функции имеет тин «указатель функции, возвращающей значение заданного типа и имеющей аргументы заданного типа»: int (*fun) (double, double); 2. Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного). Простейшее объявление указателя на объект (в дальнейшем называемого просто указателем) имеет вид: тип *имя; где тип может быть любым, кроме ссылки и битового поля, причем тип может быть к этому моменту только объявлен, но еще не определен (следовательно, в структуре, например, может присутствовать указатель на структуру того же типа). Звездочка относится непосредственно к имени, поэтому для того, чтобы объявить несколько указателей, требуется ставить ее перед именем каждого из них. Размер указателя зависит от модели памяти. Можно определить указатель на указатель и т. д. 3. Указатель на void применяется в тех случаях, когда конкретный тип объекта, адрес которого требуется хранить, не определен (например, если в одной и той же переменной в разные моменты времени требуется хранить адреса объектов различных типов). Указателю на void можно присвоить значение указателя любого типа, а также сравнивать его с любыми указателями, но перед выполнением каких-либо действий с областью памяти, на которую он ссылается, требуется преобразовать его к конкретному типу явным образом.
|