Sdílet prostřednictvím


Č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ů:

  1. V prvním formuláři postfix-expression představuje hodnotu struct nebo union typ a identifier pojmenuje člena zadané struktury nebo sjednocení. Hodnota operace je identifier hodnota a je l-hodnota, pokud postfix-expression je l-hodnota. Další informace najdete v tématu Výrazy L-Value a R-Value.

  2. Ve druhém formuláři postfix-expression představuje ukazatel na strukturu nebo sjednocení a identifier pojmenuje člena zadané struktury nebo sjednocení. Hodnota je identifier hodnota a je l-hodnota.

Oba typy výrazů výběru členů mají podobné funkce.

Výraz zahrnující operátor výběru člena (->) je ve skutečnosti zkrácenou verzí výrazu používajícího tečku (.), pokud výraz před tečkou sestává z operátoru nepřímého převodu (*) použitého na hodnotu ukazatele. Z toho plyne:

expression->identifier

je ekvivalentem

(*expression).identifier

když expression je hodnota ukazatele.

Příklady

Následující příklady odkazují na tuto deklaraci struktury. Informace o operátoru indirection (*) použitém v těchto příkladech najdete v tématech Indirection a Address-of Operators.

struct pair
{
    int a;
    int b;
    struct pair *sp;
} item, list[10];

Výraz výběru členů struktury item vypadá takto:

item.sp = &item;

V příkladu je adresa item struktury přiřazena členu sp struktury. To znamená, že item obsahuje ukazatel na sebe.

(item.sp)->a = 24;

V tomto příkladu se výraz item.sp ukazatele používá s operátorem člen-výběr (->) k přiřazení hodnoty členu a.

list[8].b = 12;

Tento příkaz ukazuje, jak vybrat jednotlivý člen struktury z pole struktur.

Viz také

Operátory přístupu členů: . A->