Эта операция используется с указателем на структуру или объединение для определения элемента структуры или объединения. Предположим, что ptrstr
является указателем на структуру и что member элемент, определенный структурным шаблоном. Тогдаопределяет элемент, на который выполняется ссылка. Операцию косвенного обращения к элементу можно использовать таким же образом и для объединений.
Пример
Операторы присваивают значение элементу code структуры item. Следующие три выражения эквивалентны:
ПЕРЕДАЧА ИНФОРМАЦИИ О СТРУКТУРАХ ФУНКЦИЯМ
Вспомним, что аргументы функции передают
Использование элементов структуры
Поскольку элемент структуры является переменной с единственным значением (т.е. типа int
или одного из его "родственников" - char, float, double или указатель), он может быть передан как аргумент функции. Простая программа финансовых расчетов на рис. 14.6, которая прибавляет взнос клиента к его счету, иллюстрирует этот способ. Заметим, между прочим, что мы объединили определение шаблона, описание переменной и инициализацию в один оператор.РИС. 14.6. Программа, передающая функции аргументы, являющиеся элементами структуры.
Результат выполнения этой программы:
Вот это да, она работает. Заметим, что функция sum( )
"не знает", или же си безразлично, являются ли элементами структуры фактические аргументы; она только "требует", чтобы они имели тип float.Конечно, если вы хотите, чтобы программа воздействовала на значение элемента в вызывающей программе, можно передать ей адрес этого элемента:
и тогда получилась бы функция, которая изменила бы банковский счет в структуре stan
.Второй способ передачи информации о структуре заключается в возможности сообщить суммирующей функции, что она имеет дело со структурой.
Использование адреса структуры
Мы будем решать ту же самую задачу, что и прежде, но при этом использовать адрес структуры в качестве аргумента. Это хорошо, поскольку адрес представляет собой только одно число. Так как функция должна работать со структурой funds
, она тоже должна использовать шаблон funds. См. рис. 14.7.PИC. 14.7. Программа, передающая функции адрес структуры. Эта программа тоже выдает