СТРУКТУРЫ И УКАЗАТЕЛИ
Мы уже упомянули, что нельзя
передавать функции структурную переменную
целиком в качестве аргумента (хотя можно
передавать отдельные элементы). Но существует
возможность обойти это ограничение, используя в
качестве аргумента указатель на структуру.
Описание
struct anketa *uk;
говорит , что uk
- указатель на структуру типа anketa. Обозначение
относится к конкретному элементу структуры и
означает выборку этого элемента, например: uk->
tab_nom. Поскольку uk есть указатель на
структуру anketa, то к элементу tab_nom можно
обращаться и так:
(*uk).tab_nom,
если учесть, чтоуказатель установлен на
начало массива структур. Имя массива, как обычно,
эквивалентно адресу его начального элемента и
при добавлении к указателю на структуру или
вычитании из него целого числа размер структуры
учитывается автоматически Так, оператор uk=a;
устанавливает указатель на первый
экземпляр массива структур, а запись ++a; обеспечивает
автоматический переход к следующему экземпляру.
В выражении (*uk).fio скобки обязательны,
так как приоритет операции выделения элемента "
. " выше чем у "*".
< Дальше >
|