![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Понятие структуры
При решении практических задач очень часто приходится сталкиваться с объектами, которые невозможно описать переменной одного типа. Для описания такого рода объектов требуется несколько переменных различного типа. Для решения этой проблемы в языке С++ используют понятие «структура» – это совокупность переменных различных типов, объединённых в одну переменную. Элементы структуры называются полями. В качестве полей структуры могут выступать скалярные величины, массивы, а также другие структуры. Таким образом, структурный тип задает внутреннее строение определяемых с его помощью структур-переменных. В отличие от массива, всегда состоящего из однотипных элементов, компоненты структуры-переменной могут быть разных типов и все должны иметь различные имена. Из определения структуры понятно, что заполнение и обработка структур производится только поэлементно – операции над структурами в языке С++ не определены, т.е. ввод-вывод элементов структуры-переменной осуществляется при помощи стандартных функций 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
|