struct inv_type {
char item[40]; // наименование товара
double cost; // стоимость
double retail; // розничная цена
int on_hand; // имеющееся в наличии количество
int lead_time; // число дней до пополнения запасов
};
Имя структуры —
Обратите внимание на то, что объявление завершается точкой с запятой. Дело в том, что объявление структуры представляет собой инструкцию. Именем типа структуры здесь является
В предыдущем объявлении в действительности не было создано ни одной переменной. Был определен лишь формат данных. Чтобы с помощью этой структуры объявить реальную переменную (т.е. физический объект), нужно записать инструкцию, подобную следующей.
inv_type inv_var;
Вот теперь объявляется структурная переменная типа
При объявлении структурной переменной C++ автоматически выделит объем памяти, достаточный для хранения всех членов структуры. На рис. 10.1 показано, как переменная
Одновременно с определением структуры можно объявить одну или несколько переменных, как показано в этом примере.
struct inv_type {
char item[40]; // наименование товара
double cost; // стоимость
double retail; // розничная цена
int on_hand; // имеющееся в наличии количество
int lead_time; // число дней до пополнения запасов
} inv_varA, inv_varB, inv_varC;
Этот фрагмент кода определяет структурный тип
Если для программы достаточно только одной структурной переменной, в ее определение необязательно включать имя структурного типа. Рассмотрим следующий пример:
struct {
char item[40]; // наименование товара
double cost; // стоимость
double retail; // розничная цена
int on_hand; // имеющееся в наличии количество
int lead_time; // число дней до пополнения запасов
} temp;
Этот фрагмент кода объявляет одну переменную
Общий формат объявления структуры выглядит так.
struct имя_типа_структуры {
тип имя_элемента1;
тип имя_элемента2;
тип имя_элемента3;
.
.
.
тип имя_элементаN;
} структурные_переменные;
К отдельным членам структуры доступ осуществляется с помощью оператора
inv_var.cost = 10.39;
Чтобы обратиться к члену структуры, нужно перед его именем поставить имя структурной переменной и оператор
имя_структурной_переменной.имя_члена
Следовательно, чтобы вывести значение поля
cout << inv_var.cost;
Аналогичным способом можно использовать символьный массив
gets(inv_var.item);
Здесь функции