Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
gets((*p).title); | /* | Ввод названия книги.*/ |
gets ((*р).author); | /* | Ввод имени автора.*/ |
(*р).value=123; | /* | Ввод цены книги.*/ |
gets(p —> title); | /* | Ввод названия книги.*/ |
gets(p —> author); | /* | Ввод имени автора.*/ |
p —> value=150; | /* | Ввод цены книги.*/ |
Указатель р содержит адрес начала массива— адрес нулевого элемента массива структур типа book. Используя р, можно осуществить доступ к каждому полю структуры типа book. Чтобы осуществить доступ к другим структурам, необходимо изменить адрес, хранящийся в р. Сдвиг указателя на / элементов массива осуществляется следующим образом:
p=p + i;.
Графическое представление массива структур в памяти ЭВМ показано на рис. 1.12.
Динамическое распределение памяти под массив структур. Динамически распределять память под массив структур необходимо в том случае, когда заранее не известен размер массива.
float value |
chartitle[15] |
Адрес начала массива
Название Имя Цена книги автора книги
Z |
/------------------
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-04; Прочитано: 257 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!