Členové struktury a sjednocení
"Výraz výběru členů" odkazuje na členy struktury a sjednocení.Takový výraz má hodnotu a typ vybraného členu.
postfix-expression . identifier
postfix-expression –> identifier
Seznam popisuje dva typy výrazů výběru členů:
V prvním typu představuje výraz přípony hodnotu struct nebo typ union a identifikátor pojmenovává člen určené struktury nebo sjednocení.Hodnotou operace nabývá hodnoty identifikátoru a l hodnotou, je-li l hodnota výraz přípony.Další informace naleznete v tématu Výraz hodnot L a R.
Druhý typ výrazu přípony představuje ukazatel na strukturu nebo sjednocení a identifikátor pojmenovává člen určené struktury nebo sjednocení.Hodnota je identifikátor a je to l hodnota.
Oba typy výběru členů výrazů mají podobné funkce.
Ve skutečnosti je výraz zahrnující operátor výběru členů (–>) zkrácená verze výrazu používajícího tečku (.), skládá-li se výraz před tečkou z operátoru dereference (*) použitého na hodnotu ukazatele.Z toho plyne,
expression –> identifier
je ekvivalentem k
(*expression) . identifier
je-li výraz hodnota ukazatele.
Příklady
Následující příklady odkazují na tuto deklaraci struktury.Informace o operátoru dereference (*), který se používá v těchto příkladech, naleznete v tématu Dereference a operátory z adresy.
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
Výraz výběr členů struktury item vypadá takto:
item.sp = &item;
V příkladu uvedeném výše je adresa struktury item přiřazena členu struktury sp.To znamená, že item obsahuje odkaz sám na sebe.
(item.sp)–>a = 24;
V tomto příkladu se výraz ukazatele item.sp používá spolu s operátorem výběru členů (–>) pro přiřazení hodnoty pro člen a.
list[8].b = 12;
Tento příkaz ukazuje, jak vybrat jednotlivý člen struktury z pole struktur.