Структура и члены объединения
"Выражение участник-выделения" относится к элементам, структур и соединений.Такое выражение имеет значение и тип выбранного элемента.
postfix-expression . identifier
postfix-expression –> identifier
В следующем списке описываются 2 формы выражений участник-выделения:
В первой форме постфиксное выражение представляет значение struct OR union тип и Идентификатор имена элемент указанные структуры или объединения.Значение операции из Идентификатор если и l-значение постфиксное выражение левостороннего значения.См. Левостороннего значения выражения и значения r для получения дополнительных сведений.
Во второй форме постфиксное выражение представляет указатель на структуру или соединение. Идентификатор имена элемент указанные структуры или объединения.Значение из Идентификатор и левостороннего значения.
2 Формы выражений участник-выделения имеют аналогичные эффекты.
В действительности, выражение участник-выделения (включая оператор- >версия) стенографии выражения, используя точку (.если выражение состоит из оператора перед точкой (косвенного обращения*) применяется к значению указателя.Поэтому
expression –> identifier
, эквивалентно выражению
(*expression) . identifier
после Выражение значение указателя.
Примеры
Следующий пример относится к данному объявлению структуры.Дополнительные сведения об операторе (косвенного обращения*****) используется в этих примерах, см. в разделе Косвенность оператора взятия адреса и.
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
Выражение для участник-выделения item структура выглядит следующим образом:
item.sp = &item;
В приведенном выше примере адрес item структура присвоена sp элемент структуры.Это значит, что item содержит указатель на себя.
(item.sp)–>a = 24;
В этом примере выражение указателя item.sp используется с оператором (участник-выделения**- >**присвоить значение члену) a.
list[8].b = 12;
На этой выписку показано, как выделить отдельный элемент структуры из массива структур.