![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
|
| struct | тип структуры | ||
| { | |||
| тип | имя элемента | 1; | |
| тип | имя элемента | 2; | |
| тип | п | имя элемента | п; |
| }; |
После закрывающей фигурной скобки «}» в объявлении структуры обязательно ставится точка с запятой.
Пример объявления структуры
| St | ruct | date |
| { | ||
| int | day; | |
| int | month; | |
| int | year; | |
| }; |
Элементы структуры располагаются в памяти ЭВМ в том же порядке, в котором они объявляются.
При объявлении структур, их разрешается вкладывать одну в другую.
Пример
| St { | ruct persone | ||
| char | fam[20] | r | |
| char | im[2 0]; | ||
| char | ot[20]; | ||
| struct date | bd; | ||
| }; |
Здесь одним из элементов структуры persone является структура типа date с именем структурной переменной bd (birthday).
Инициализация структуры может осуществляться двумя способами:
• присвоение значений элементам структуры в процессе объявления переменной, относящейся к типу структуры;
• присвоение начальных значений элементам структуры с использованием функций print/n scan/.
В первом случае инициализация осуществляется по следующей форме:
struct тип структуры имя переменной= {значение элемента 1, значение элемента 2,
значение элемента п};.
Второй случай не отличается от способа инициализации объектов языка Си уже известных типов.
Для обращения к элементу структуры нужно указать не только имя самого элемента, но и имя переменной. Они разделяются точкой:
имя_переменной.имя_элемента.
Имя структурной переменной может быть указано при объявлении структуры. В этом случае оно размещается после закрывающейся фигурной скобки.
Пример
struct complex_type
{
double real;
doubl imag; } number;
В этом примере элементами структуры будут переменные number.real и number imag.
Пример 1. Объявление и инициализация структуры
| /* | Объявление структуры | comput | er, */ | |||
| /* | состоящей из | двух элементов | : model и memor | y.*/ | ||
| St { | ruct computer | |||||
| char model[30]; | ||||||
| }; | int memory; | |||||
| /* | Объявление и | инициализация | переменной*/ | |||
| /* | Elecom типа computer. | */ | ||||
| St | ruct computer | Elecom = | = {"IBM | PC | Pentium 4", | 1024}; |
Пример 2. Объявление и инициализация структуры
| #include <stdio.h> | |
| main () { /^Объявление структуры типа data. | |
| */ | |
| struct data { int day; | |
| char month[10]; |
| int year; }; | |
| /^Объявление структуры типа person;*/ | |
| /*одним из элементов структуры person*/ | |
| /^является структурная переменная bo! типа | data.*/ |
| struct person { char fam[20]; | |
| char im[20]; | |
| char ot[20]; | |
| struct data bd; }; | |
| /^Объявление структурной переменной indl* | / |
| /*типа person.*/ | |
| struct person indl; | |
| printf ("\n Укажите через Enter фамилию, | имя, |
| отчество,"); | |
| printf ("\n День, месяц и год рождения гражданина | |
| indl\n"); | |
| /* Ввод сведений о гражданине indl. */ | |
| scant ("%s%s%s%d%s%d", indl.fam, indl.im, | indl.ot, |
| &indl.bd.day, &indl.bd.month. &indl.bd.ye | ar); |
| /* Вывод сведений о гражданине indl. */ | |
| printf ("\n\n Сведения о гражданине indl: | \n\n"); |
| printf ("Фамилия, имя, отчество: \t%s %s | %s\t \n", |
| indl.fam, indl.bd.month, indl.be } | .year); |
Дата публикования: 2014-11-04; Прочитано: 273 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
