Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






 

При решении практических задач очень часто приходится сталкиваться с объектами, которые невозможно описать переменной одного типа. Для описания такого рода объектов требуется несколько переменных различного типа. Для решения этой проблемы в языке С++ используют понятие «структура» – это совокупность переменных различных типов, объединённых в одну переменную. Элементы структуры называются полями. В качестве полей структуры могут выступать скалярные величины, массивы, а также другие структуры. Таким образом, структурный тип задает внутреннее строение определяемых с его помощью структур-переменных. В отличие от массива, всегда состоящего из однотипных элементов, компоненты структуры-переменной могут быть разных типов и все должны иметь различные имена. Из определения структуры понятно, что заполнение и обработка структур производится только поэлементно – операции над структурами в языке С++ не определены, т.е. ввод-вывод элементов структуры-переменной осуществляется при помощи стандартных функций printf() и scanf(). Становится ясно, что объём оперативной памяти, которую занимает структура-переменная, будет равен суммарному объёму памяти, который занимают все элементы такой структуры.

Описание структуры производится при помощи спецификатора объявления структур: struct. Описание структуры:

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

{

< имя_типа_данных_1> < поле_1>;

< имя_типа_данных_2> < поле_2>;

< имя_типа_данных_N> < поле_N>;

};

Объявление структуры-переменной:

struct < имя_структурного_типа> < имя_структуры–переменной>;

 

Например, структура «товар» содержит поля:

название товара

закупочная цена

торговая наценка в процентах

объем партии товара

дата поступления партии товара

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

struct tovar

{

char name[50]; // Наименование

float price; // Цена оптовая

float percent; // Наценка в %

int vol; // 06ъем партии

char date[9]; // Дата поставки партии

};

struct tovar tv;

В данном примере struct – спецификатор структурного типа; tovar – имя структурного типа; tv – структура-переменная.

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

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

gets(tv.name); // ввод с клавиатуры поля name

tv.price = 1234.56; // присваивание полю price значения 1234.56

scanf(" %f", & tv.percent); // ввод с клавиатуры вещественного значения

// по адресу поля percent

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.