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

 

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

 








Дата добавления: 2015-08-08; просмотров: 650;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.