КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
СтруктурыСтруктура – это объединенное в единое целое множество поименованных элементов данных. Элементы структуры (поля) могут быть различного типа, они все должны иметь различные имена. Форматы определения структурного типа следующие: 1. struct имя_типа //способ 1 { тип 1 элемент1; тип2 элемент2; . . . }; Пример: struct Date//определение структуры { int day; int month; int year; }; Date birthday;//переменная типа Date 2) struct //способ 2 { тип 1 элемент1; тип2 элемент2; . . . } список идентификаторов; Пример: struct { int min; int sec; int msec; }time_beg,time_end; В первом случае описание структур определяет новый тип, имя которого можно использовать наряду со стандартными типами. Во втором случае описание структуры служит определением переменных. 3) Структурный тип можно также задать с помощью ключевого слова typedef: Typedef struct //способ 3 { floar re; float im; }Complex; Complex a[100];//массив из 100 комплексных чисел. Инициализация структур. Для инициализации структур значения ее полей перечисляют в фигурных скобках. Примеры: 1. struct Student { char name[20]; int kurs; float rating; }; Student s={”Иванов”,1,3.5}; 2. struct { char name[20]; char title[30]; float rate; }employee={“Петров", “директор”,10000}; Работа со структурами Присваивание структур Для переменных одного и того же структурного типа определена операция присваивания. При этом происходит поэлементное копирование. Student ss=s; Доступ к элементам структур Доступ к элементам структур обеспечивается с помощью уточненных имен: Имя_структуры.имя_элемента employee.name – указатель на строку «Петров»; employee.rate – переменная целого типа со значением 10000 Пример: #include <iostream.h> void main() { struct Student { char name[30]; char group[10]; float rating; }; Student mas[35]; //ввод значений массива for(int i=0;i<35;i++) { cout<<”\nEnter name:”;cin>>mas[i].name; cout<<”\nEnter group:”;cin>>mas[i].group; cout<<”\nEnter rating:”;cin>>mas[i].rating; } cout<<”Raitng <3:”; for( i=0;i<35;i++) if(mas[i].name<3) cout<<”\n”<<mas[i].name; } Указатели на структуры Указатели на структуры определяются также как и указатели на другие типы. Student*ps; Можно ввести указатель для типа struct, не имеющего имени (способ 2): Struct { char *name; int age; } *person;//указатель на структуру При определении указатель на структуру может быть сразу же проинициализирован. Student *ps=&mas[0]; Указатель на структуру обеспечивает доступ к ее элементам 2 способами: 1.(*указатель).имя_элемента 2. указатель->имя_элемента cin>>(*ps).name; cin>>ps->title;
|