КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Определение размера структуры
Вычисление адреса структуры Присваивание Доступ к компоненту структуры по адресу структуры Доступ к компоненту структуры по имени структуры Компонент структуры может быть любого типа, кроме типа объявляемой структуры. Пример объявления структурного типа: struct student //тип студент { char fio[24]; //ФИО int year; //год зачисления float ball; //средний балл }; Объявление переменных типа student: student s1, s2; //две структурных переменных student s3[4]; //массив структур student s4 ={“Petrov”, 2003, 3.3}; //инициализация структуры struct student s5; //объявление в стиле языка Си
7.2. Операции над структурами Синтаксис операции: Имя_структуры.имя_компонента Пример: student s1; s1.ball=5; s1.year=2011; strcpy(s1.fio,”Ivanov I.I.”); Синтаксис операции: Имя_структуры->имя_компонента Пример: student *p; p=new student; p->ball=5; p->year=2011; strcpy(p->fio,”Ivanov I.I.”); Синтаксис операции: s1=s2 где s1 и s2 структуры одного типа. Пример: student s1, x; s1.ball=5; s1.year=2011; strcpy(s1.fio,”Ivanov I.I.”); x=s1; //присваивание структуры Пример: student s1; student *p; p=&s1; //вычисление адреса переменной-структуры Пример: student s1; cout<<sizeof s1; //определение размера структуры Так как типом компонента структуры может быть структура, то можно работать с вложенными структурами. Пример объявления структуры Работник=(ФИО, дата рождения, должность, дата начала работы), содержащей вложенную структуру Дата: struct tdate //тип дата { int day; //день int month; //месяц int year; //год }; struct person //тип работник { char fio[24]; //ФИО char post[20]; //должность tdate birthday; //дата рождения date begin; //дата начала работы }; Объявление переменной: person p; Обращение к полям вложенной структуры: cin>>p. birthday.day>> p. birthday.month>> p. birthday.year; Пример программы, которая вводит информацию об n студентах (ФИО, год поступления, средний балл) и выводит эту информацию в упорядоченном по убыванию среднего балла виде: #include <iostream.h> #include <conio.h> #include <string.h> struct student { char fio[24]; int year; float ball; }; void main() { student* s; //динамический массив int n; //количество студентов int i, j; //номер студента и номер прохода массива student x; //переменная для перестановки cout<<"n "; cin>>n; s=new student [n]; / выделение памяти для динамического массива for (i=0; i<n; i++) //ввод информации о студентах { cout<<"fio "; /* ФИО содержит пробелы. Для удаления символа '\n’ из буфера ввода после ввода значения n используется функция get() */ cin.get(); cin.getline(s[i].fio,24); cout<<"year "; cin>>s[i].year; cout<<"ball "; cin>>s[i].ball; } // Сортировка for (j=1; j<n; j++) for (i=0; i<n-j; i++) if (s[i].ball<s[i+1].ball) { x=s[i]; s[i]=s[i+1]; s[i+1]=x;} cout<<"result"<<endl; for (i=0; i<n; i++) cout <<s[I].fio<<' '<<s[I].year<<' '<< s[I].ball<<endl; getch(); }
7.3. Объявление объединения
Объединение – это составной тип данных, компоненты которых могут быть разных типов. Компоненты объединения размещаются с одного адреса памяти. Синтаксис объявления типа «объединение»: union имя_типа { объявление компонент };
Дата добавления: 2014-01-06; Просмотров: 423; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |