КАТЕГОРИИ: Архитектура-(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) |
Инициализация массива структур при помощи указателя р
Инициализация структур без указателя Пример Указатели и структуры JL J L JL JL 1 1 О о I _ Is. I _ К 0 0 0 0 еюаааа [31 [21
J Рис. 1.11. Содержимое участка памяти, отведенного под структуру struct field type На экран будет выведено следующее число: 1-211 + 1-2 9+ 1-2 6+ 1-2 4+ 1-21 + 1-2 ° = 2643. Выбор элементов структуры или объединения. Выражение выбора элемента позволяет получить доступ к элементу структуры или объединения. Выражение имеет значение и тип выбранного элемента. Возможны три способа доступа к полям [4]: 1) <выражение>.<идентификатор>, где <выражение> — значение типа struct или union; <идентификатор> — поле структуры или объединения; 2) <выражение> -> <идентификатор>, где <выражение> — указатель на структуру или объединение; <идентификатор> — поле структуры или объединения; 3) (<*выражение>).<идентификатор>, где <выражение> — указатель на структуру или объединение; <идентификатор> — поле структуры или объединения. Работа со структурами с помощью указателей. Доступ к элементам структуры или объединения можно осуществить с помощью указателей. Для этого необходимо инициализировать указатель адресом структуры или объединения [14].
Для организации работы с массивом можно использовать указатель р или имя массива:
1) (*р).value, что равнозначно записи libry[0].value; 2)р-> value, что равнозначно записи libry[0].value.
Указатель р содержит адрес начала массива— адрес нулевого элемента массива структур типа book. Используя р, можно осуществить доступ к каждому полю структуры типа book. Чтобы осуществить доступ к другим структурам, необходимо изменить адрес, хранящийся в р. Сдвиг указателя на / элементов массива осуществляется следующим образом: p=p + i;. Графическое представление массива структур в памяти ЭВМ показано на рис. 1.12. Динамическое распределение памяти под массив структур. Динамически распределять память под массив структур необходимо в том случае, когда заранее не известен размер массива.
Адрес начала массива Название Имя Цена книги автора книги
/------------------ char author[15] " libry[0]
p + 1 char title[15] char author[15] T float value " libry [1]
P + 2 chartitle[15] char author[15] Z float value ■ bry[2]
p + i chartitle[15] z char auth or[15] Z float value libry [i]
p + 99/ chartitle[15] Последний элемент массива структур I char atithor[15] Z float value 7\ libry [99] Рис. 1.12. Массив структур Пример #include <stdio.h> #include <alloc.h> struct book
{ char title [30]; char author [30]; float value; }; main () { struct book *p; int n; /*n - число структур book*/
printf("\пВведите n:");
Дата добавления: 2014-11-29; Просмотров: 484; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |