Elementy członkowskie struktury i złożenia
„Wyrażenie wyboru elementu członkowskiego” dotyczy elementów członkowskich struktur i unii. Takie wyrażenie ma wartość i typ wybranego elementu członkowskiego.
postfix-expression
.
identifier
postfix-expression
->
identifier
Poniższa lista opisuje dwie formy wyrażeń wyboru elementów członkowskich:
W pierwszym formularzu
postfix-expression
reprezentuje wartośćstruct
lubunion
typ iidentifier
nazywa element członkowski określonej struktury lub unii. Wartość operacji to wartośćidentifier
i jest wartością l, jeślipostfix-expression
jest wartością l.. Aby uzyskać więcej informacji, zobacz Wyrażenia L-Value i R-Value.W drugim formularzu
postfix-expression
reprezentuje wskaźnik do struktury lub unii iidentifier
nazywa element członkowski określonej struktury lub unii. Wartość jest wartością typuidentifier
i jest wartością l..
Obie formy wyrażeń wyboru elementów członkowskich mają podobne skutki.
W rzeczywistości wyrażenie obejmujące operator wyboru składowego (->
) jest skróconą wersją wyrażenia przy użyciu kropki (), jeśli wyrażenie przed okresem składa się z operatora pośredniego (.
*
) zastosowanego do wartości wskaźnika. Zatem
expression->identifier
jest równoważny
(*expression).identifier
gdy expression
jest wartością wskaźnika.
Przykłady
Następujące przykłady dotyczą niniejszej deklaracji struktury. Aby uzyskać informacje na temat operatora pośredniego (*
) używanego w tych przykładach, zobacz Indirection and Address-of Operators (Operatory pośrednie i adresowe).
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
Wyrażenie wyboru elementów członkowskich dla struktury item
wygląda następująco:
item.sp = &item;
W tym przykładzie adres item
struktury jest przypisywany do sp
elementu członkowskiego struktury. Oznacza to, że item
zawiera wskaźnik do samego siebie.
(item.sp)->a = 24;
W tym przykładzie wyrażenie item.sp
wskaźnika jest używane z operatorem wyboru składowego (->
) w celu przypisania wartości do elementu członkowskiego a
.
list[8].b = 12;
Ta instrukcja pokazuje, jak wybrać dany element członkowski struktury z tablicy struktur.