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

Термины

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

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

Массив – это производный тип, представляющий собой множество элементов, все элементы массива имеют один и тот же тип и следуют в памяти друг за другом.

Строка – это символьный массив, заканчивающийся символом с кодом 0 (символ NULL) – это служебный символ, являющийся признаком конца строки.

Лекция 6. Структуры и объединения

6.1. Структуры

Дадим следующее определение структуры.

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

Формат определения структуры следующий:

struct [<имя_структурного_типа>]

{

.. // Объявления полей структуры

} [<имя_переменной_струрного_типа>];

Пример:

struct A

{

Int X; // Поле структуры

float y; // Поле структуры

};

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

A a1, a2; // Объявление переменных структурного типа

Примечание. Такой формат определения переменных структурного типа разрешен в языке Си++ в исходном Си стандарта ANSI требуется при подобном объявлении переменных структурного типа дополнительно указывать ключевое слово struct:

struct A a1, a2; // Объявление переменных структурного типа в Си стандарта ANSI

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

struct A

{

Int X; // Поле структуры

float y; // Поле структуры

} a1, a2; // Объявлении переменных одновременно со структурой

Или

struct // Имя структуры отсутствует, далее переменные этого типа не могут создаваться

{

Int X; // Поле структуры

float y; // Поле структуры

} a1, a2; // Объявлении переменных одновременно со структурой

Обращение к полям структуры производится с помощью операции «.» - обращение к полю структуры через имя переменной, или операции «->» -обращение к полю структуры через указатель.

a1.x=10; a1.y=1.5;

A *pA=&a1; // Указатель на структуру

pA->x=11; // или (*pA).x=11;

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

Переменная структурного типа может быть определена с инициализацией полей. Инициализация структуры похожа на инициализацию массива. Например:

struct BOOK // Структура описывает некоторую книгу

{

char * author; // Имя автора книги

char *title; // Заголовок книга

char *firm; // Название издательства

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