Similar presentations:
Представление данных и адресация переменных: простые типы, записи (структуры)
1. ПРЕДСТАВЛЕНИЕ ДАННЫХ И АДРЕСАЦИЯ ПЕРЕМЕННЫХ: ПРОСТЫЕ ТИПЫ, ЗАПИСИ (СТРУКТУРЫ), ЗАПИСИ С ВАРИАНТАМИ (ОБЪЕДИНЕНИЯ), МАССИВЫ,
Тема № 21ПРЕДСТАВЛЕНИЕ ДАННЫХ И АДРЕСАЦИЯ
ПЕРЕМЕННЫХ: ПРОСТЫЕ ТИПЫ, ЗАПИСИ (СТРУКТУРЫ),
ЗАПИСИ С ВАРИАНТАМИ (ОБЪЕДИНЕНИЯ), МАССИВЫ,
УКАЗАТЕЛИ (УПРАВЛЯЕМЫЕ И НЕУПРАВЛЯЕМЫЕ)
{
Бишлеев В. М., Коновской А. О., Лагутин Н. И.
2. Записи и массивы
Запись - это структура данных, состоящая из фиксированногоколичества информационных элементов, необязательно одного
и того же типа. В Си записи имеют тип структуры. В тексте два
слова запись и структура будут использоваться
взаимозаменяемо.
Массив - это структура данных, состоящая из фиксированного
числа последовательных информационных элементов, которые
пронумерованы индексом(идентификатором). Все элементы
массива должны быть одного типа. Записи и массивы имеют
безграничное применение. Записи полезны, когда на элементы
нужно ссылаться по имени, а массивы полезны, когда на
элементы следует ссылаться по их позициям в
последовательности.
3. Указатели
Записи и массивы - это блоки, из которых строятся болеесложные структуры данных, а указатели – это элементы,
удерживающие их вместе. Указатели представляют собой
объекты, значением которых служат адреса других объектов
(переменных, констант, указателей) или функций. Как и ссылки,
указатели применяются для косвенного доступа к объекту.
Однако в отличие от ссылок указатели обладают большими
возможностями. Указатель та же переменная, только
инициализируется она не значением одного из множества
типов данных в C++, а адресом, адресом некоторой переменной,
которая была объявлена в коде ранее.
Указатели являются переменными, которые
1. Обращаются или указывают на места в памяти для
переменных
2. Указывают на структуры данных
3.Связывоют компоненты структур данных вместе
4. Структуры или записи в Cи.
В Си память может рассматриваться как состоящая изэлементов хранения различной длины и сложности. Их
сложность определяется их типом. Простейшие элементы
хранения имеют один из трех основных типов: int, float и
char. На один уровень сложности находятся элементы
хранения, имеющие структуру типов. Среди этих, самые
простые имеют ровно один член, который в свою очередь
имеет один из основных типов. Элемент хранения
структуры типа для книги будет более сложным; это может
включать членов для его названия, автора, стоимости и
количества страниц. Члены не ограничены одним из
основных типов, но сами могут иметь структуру типов.
5. Структуры или записи в Cи.
Рассмотрим следующие объявления C:float amount;
struct book;
struct book text;
{
char title[35];
struct name author;
float cost;
int pages;};
struct balance struct name
{
{
float amount; char last[15];
}bankbalance;
char middleinit;
char first[15];}
6. Три переменные
Хранение для трех переменных количества, банковскогобаланса и текста может быть изображено как на рисунке
ниже. Из рисунка видно, что хранилище должно различаться
по сложности для разных переменных. Самым простым
является, очевидно, тот, который хранит только один
фрагмент информации, как и элемент хранения для
переменного количества.
7. Объявления
Рассмотрим следующие объявления:int book_number [80];
имя структуры автор [40];
плавающие цены [80];
библиотека символов [30];
Объявление определяет имя каждой переменной (например, book_number) и
ее тип для каждой из четырех переменных. Он также определяет диапазон
значений индекса массива для каждого из четырех массивов.
Индекс массива относится к позиции массива. Book_number, author, цены и
библиотека имеют индексы массивов, которые могут принимать значения в
диапазоне от 0 до 79, от 0 до 39, от 0 до 79 и от 0 до 29 соответственно. В C
первой позицией в массиве всегда является нулевая позиция. Book_number [3],
автор [9] и цены [5] относятся к четвертому, десятому, и шестая запись,
соответственно, и библиотека [12] ссылается на тринадцатый символ в
библиотеке символьных строк.
8. Массивы
Предположим, что массив хранит начальный пробег длякаждого автомобиля из парка арендуемых автомобилей.
Когда автомобиль возвращается, его начальный пробег
необходим для подготовки счета на основе использованного
пробега. Следующим возвращаемым автомобилем может
быть любой арендованный автомобиль. Для доступа к
начальному пробегу напрямую требуется возможность
произвольного доступа к массивам. Время обработки
сэкономлено, поскольку информационная запись находится
непосредственно - не теряется время на поиск других
записей, чтобы найти ее. Когда к информации обращаются
напрямую, в постоянное время она считается выбранной.
Таким образом, любая запись массива, позиция которой
известна, может быть выбрана.