Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
konspect.doc
Скачиваний:
7
Добавлен:
23.09.2019
Размер:
151.55 Кб
Скачать

51. Доступ к элементу структуры.

Для этого используется операция "."

goods1.name - образовалось составное имя. Тип составного имени такой же как тип соответствующего элемента структуры.

С составным именем можно выполнять любые действия, разрешенные для типа элемента. Для указателя на структуру используют селектор 

52. Инициализация структур.

Статические структуры могут быть проинициализированы подобно массивам:

static GOODS a = { "Телепвизор", 14000.0, 20};

Необходимо строго следитьза соответствием порядка констант порядку элементов структуры.

53. Структуры и функции.

Структура целиком может быть передана функции как аргумент и возвращена как значение функции.

Пример преобразование в полярных координат в декартовом:

struct POLAR

{

double r, f;

}

struct DECART

{

double x, y;

}

DECART TO DECART (POLAR p)

{

DECART d;

d.x = p.r*cos(p.f);

d.y = p.r*sin(p.f);

return d;

}

void main(void)

{

DECART a; POLAR b = { 15.2, 0.18};

a = p(b);

}

54. Поля бит в структурах.

В структуре для целых чисел допускается использовать область памяти меньше байта:

struct Un:Population

{

int FIT:11;

int FEM:11;

iny FEN:10;

};

55. Объединения.

Способы описания такие же, как и в случае структур, только вместо слова struct используется слово union.

union {int a; long b;} pr;

Для переменной pr выделяется память, достаточная для хранения самого длинного элемента объединения, т. е. в нашем примере - 4 байта. Объединения используются для хранения полей и поле которое записано последнее корректно.

Объединения нельзя инициализировать.

56. Динамические данные.

Статическими величинами называются такие, память под которые выделяется во время компиляции и сохраняется в течение всей работы программы.

В языках программирования (Pascal, C, др.) существует и другой способ выделения памяти под данные, который называется динамическим. В этом случае память под величины отводится во время выполнения программы. Такие величины называются динамическими. Работа с динамическими величинами связана с использованием еще одного типа данных — ссылочного типа. Величины, имеющие ссылочный тип, называют указателями.

Указатель содержит адрес поля в динамической памяти, хранящего величину определенного типа. Сам указатель располагается в статической памяти.

57. Линейные списки.

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

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

В виде списков удобно представлять большие объемы информации, размер которых заранее неизвестен.

58. Организация данных в виде стека.

Понятие стека ("магазина"): первый пришел, последний ушел.

LIFO (LAST IN FIRST OUT)

Описание стека как списка:

typedef struct _LIST {

info_t info; /* тип данных для информации */

struct _LIST *next;

} LIST;

В вызывающей функции стек должен быть описан так:

LIST *head = NULL; /* голова списка */

Действия со стеком определяется несколькими функциями:

1. Помещение элемента в стек (в голову списка)

2. Извлечение из стека (из головы списка)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]