Udostępnij przez


Struktura i składowe unii

Wyrażenie "wybór elementu członkowskiego" odnosi się do składowych struktur i związków. Takie wyrażenie ma wartość i typ wybranego elementu członkowskiego.

postfix-expression . identifier
postfix-expression -> identifier

Ta lista zawiera opis dwóch formularzy wyrażeń wyboru składowych:

  1. W pierwszym formularzu postfix-expression reprezentuje wartość struct lub union typ i identifier nazywa element członkowski określonej struktury lub unii. Wartość operacji to wartość identifier i jest wartością l, jeśli postfix-expression jest wartością l.. Aby uzyskać więcej informacji, zobacz Wyrażenia L-Value i R-Value.

  2. W drugim formularzu postfix-expression reprezentuje wskaźnik do struktury lub unii i identifier nazywa element członkowski określonej struktury lub unii. Wartość jest wartością typu identifier i jest wartością l..

Te dwie formy wyrażeń wyboru składowego 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. Więc

expression->identifier

jest równoważny

(*expression).identifier

gdy expression jest wartością wskaźnika.

Przykłady

Poniższe przykłady odnoszą się do tej 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 elementu członkowskiego dla item struktury 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;

W tej instrukcji pokazano, jak wybrać pojedynczy element członkowski struktury z tablicy struktur.

Zobacz także

Operatorzy dostępu do składowych: . i->