Понятие и синтаксис структур

Тема 7 Пользовательские типы данных

Довольно часто в программировании необходимо выполнять обработку данных различных типов, которые тесно взаимосвязаны между собой. Например, сведения о любой книге включают в себя автора, название, год издания, издательство, количество страниц, стоимость и многое другое. Аналогичным образом можно описать практически любой предмет, процесс или явление, используя большое количество взаимосвязанных параметров. Если хранить эти данные в отдельных разрозненных переменных или массивах, то это может значительно усложнить программу. Поэтому для решения подобных задач используются так называемые структуры (или записи).

При работе со структурами необходимо чётко отличать два понятия:

– структурированный тип данных (структура или пользовательский тип данных);

переменная этого типа (структурная переменная или объект).

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

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

Синтаксис объявления структуры начинается с ключевого слова struct. Затем указывается её имя, за которым следует список объявлений полей структуры в фигурных скобках:

struct ИмяСтруктуры {

Тип ИмяПоля1;

Тип ИмяПоля2;

...

Тип ИмяПоляN;

} список переменных;

Объявление завершается точкой с запятой, поскольку объявление структуры – это оператор. Этот оператор является неисполняемым. Он только сообщает компилятору о появлении в программе нового нестандартного типа данных. Список переменных после завершающей фигурной скобки является необязательным и чаще всего опускается. Структурные переменные, как правило, объявляются отдельно от объявления типа следующим образом:

ИмяСтруктуры список переменных;

Проиллюстрируем работу со структурной переменной простым примером. Сначала объявим структурированный тип данных с именем MyType, состоящий их трёх полей: вещественные поля A и B, а также целочисленный массив C из двух элементов:

struct MyType {

float A;

double B;

int C[2];

};

Теперь объявим переменную этого типа:

MyType V;

Во время выполнения программы в соответствии с этим объявлением в памяти появится переменная следующего вида:

При необходимости можно проинициализировать поля переменной V начальными значениями точно так же, как это делается для массивов, например:

struct MyType V = {1.2, 3.27, 10, 50};

Однако такая необходимость встречается нечасто. Гораздо чаще поля заполняются значениями с помощью операции присваивания.

Для доступа к полям структурной переменной используется операция «точка». Синтаксис операции следующий:

ИмяСтруктурнойПеременной. ИмяПоля

Используя эту операцию, присвоим полям структурной переменной V исходные значения, например:

V.A = 1.2;

V.B = 3.27;

V.C[0] = 10;

V.C[1] = 50;

Аналогичным образом можно заполнить поля путём ввода исходных значений с клавиатуры:

scanf ("%f", &V.A);

scanf ("%lf", &V.B);

for(int i = 0; i < 2; i++)

scanf ("%d", &V.C[i]);

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

printf (" %f ", V.A);

printf (" %lf ", V.B);

for(int i = 0; i < 2; i++)

printf (" %d ", V.C[i]);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: