На этом шаге мы перечислим операции над структурами.
Перечислим операции, которые допустимы над структурами.
#include <iostream.h> //Описание шаблона внешней структуры с именем date. struct date { int day; int month; int year; char mon_name[12]; }; //Инициализация внешней структуры d. date d = { 2,5,1776,"июль" }; //d - внешняя переменная типа date. void main () { struct date *p; // Указатель p указывает на структуру типа date. cout << d.day << " " << d.year << " " << d.month << " " << d.mon_name; p = &d; cout << "\nПроверка доступа к структуре по указателю: \n"; cout << p->day << " " << p->month << " " << p->year << " " << p->mon_name; }
#include <iostream.h> struct date //Описание шаблона внешней структуры с именем date. { int day; int month; int year; char mon_name[12]; }; date a = { 14,7,1954,"июль" }; date b; void main () { cout << a.day << " " << a.year << " " << a.month << " " << a.mon_name << endl; b = a; cout << "Проверка: \n"; cout << b.day << " " << b.year << " " << b.month << " " << b.mon_name << endl; }
int day_of_year1 (int day,int month,int year) { //Вычисление дня в году с помощью месяца и года. int i, leap; leap = year%4==0 && year%100!=0 || year%400==0; for (i=1; i < month; i++) day += day_tab[leap][i]; return (day); }
возможно обращение в виде: d.yearday = day_of_year1 (d.day,d.month,d.year);. Рассмотрим порядок выполнения некоторых наиболее распространенных операций над элементами структуры на примере следующего описания:
struct
{
int x;
int *y;
} *p; // p - указатель на структуру.
Тогда:
Можно отметить одно очень важное использование структур: создание новых типов данных.
Существуют типы данных, гораздо более эффективные при решении определенных задач,
чем массивы и структуры. Это очереди, двоичные деревья, множества, таблицы и графы.
Многие из этих типов создаются из "связанных" структур. Обычно каждая такая структура содержит
один или два типа данных плюс один или два указателя на другие структуры такого же
типа. Указатели служат для связи одной структуры с другой и для обеспечения пути, позволяющего
вести поиск по всей структуре.
На следующем шаге мы поговорим об использовании полей битов в качестве полей структур.