Акции

Скидка до 40% на создание Бизнес-сайта или Интернет-магазина при заключении договора на поддержку и продвижение!
Подробнее

Новости

2013-09-11

Программирование на языке C. Использование вложенных структур

Если членом структуры является другая структура, то в результате получаем вложенную структуру - одна структура внутри другой. Предположим, вы объявляете структуру для запоминания времени:

typedef struct time {

char hour; /* от 0 до 23 */

char minute; /* от 0 до 59 */

char second; /* от 0 до 59 */

} Time;

Используя структуру Date, вы можете построить вложенную структуру DateTime следующим образом:

typedf struct dateTime {

Date theDate;

Time theTime;

} DateTime;

Структура DateTime объявляет два члена: theDate и theTime, причем каждый из них является структурой. После объявления переменной dt

DateTime dt;

выражение dt.theDate обозначает член theDate типа Date структуры dt, а dt.theTime - член theTime типаТimе.

Структура не может объявлять в качестве члена структуру своего собственного типа. Другими словами, структура не может объявлять членом саму себя. Однако членом структуры может быть указатель на структуру того же типа.

Для доступа к вложенным членам структур используйте необходимое число точек. Например, выражение dt.theDate.month ссылается на член month, принадлежащий структуре theDate, которая, в свою очередь, принадлежит структуре dt.

Данный код расширяет возможности предыдущей программы. С помощью вложенных структур программа запоминает и отображает значения даты и времени.

#include



typedef struct dateStruct {

char day;

char month;

unsigned year;

} Date;



typedef struct timeStruct {

char hour;

char minute;

char second;

} Time;



typedef struct dateTime {

Date theDate;

Time theTime;

} DateTime;



main()

{

DateTime dt;



printf("Date and time test\n");

dt.theDate.day = 1;

dt.theDate.month = 9;

dt.theDate.year = 2013;

dt.theTime.hour = 18;

dt.theTime.minute = 30;

dt.theTime.second = 0;

printf("The data is: %02d.%02d.%04d\n",

dt.theDate.day, dt.theDate.month, dt.theDate.year);

printf("The tmie is: %02d:%02d:%02d\n",

dt.theTime.hour,

dt.theTime.minute,

dt.theTime.second);

return 0;

}

В строках 25-30 членам вложенных структур структуры dt присваиваются значения. Два оператора printf() в строках 31-34 отображают эти значения на экране:

Date and time test The data is: 01.09.2013 The tmie is: 18:30:00

Хотите узнать, как сделать сайт самому? Обращайтесь на masterisait.ru. Здесь Вы научитесь делать сайт самостоятельно.

Источник

Все новости>>

Новости

Все новости...

Полезные материалы

© 2012 VediTa Генеральный партнер компания "НТО ИНТ"

телефон +7 (4752) 48-54-15

создание сайтов в Тамбове

Данный сайт носит информационный характер и ни при каких условиях не является публичной офертой, определяемой положениями Статьи 437 ГК РФ.