Freigeben über


Struktur- und Unionsmitglieder

Ein "Mitgliedsauswahlausdruck" bezieht sich auf Mitglieder von Strukturen und Gewerkschaften. Ein solcher Ausdruck weist den Wert und typ des ausgewählten Elements auf.

postfix-expression . identifier
postfix-expression -> identifier

In dieser Liste werden die beiden Formen der Memberauswahlausdrücke beschrieben:

  1. Stellt im ersten Formular postfix-expression einen Wert oder structunion Typ dar und identifier benennt ein Element der angegebenen Struktur oder Vereinigung. Der Wert des Vorgangs ist der wert und identifier ist ein l-Wert, wenn postfix-expression es sich um einen l-Wert handelt. Weitere Informationen finden Sie unter L-Value- und R-Value-Ausdrücke.

  2. Stellt im zweiten Formular postfix-expression einen Zeiger auf eine Struktur oder Vereinigung dar und identifier benennt ein Mitglied der angegebenen Struktur oder Vereinigung. Der Wert ist der wert und identifier ist ein l-Wert.

Die beiden Formen von Memberauswahlausdrücken haben ähnliche Effekte.

Tatsächlich ist ein Ausdruck mit dem Memberauswahloperator (->) eine Kurzversion eines Ausdrucks, der den Punkt (.) verwendet, wenn der Ausdruck vor dem Punkt aus dem Dereferenzierungsoperator (*) besteht, der auf einen Zeigerwert angewendet wird. Daher eignet sich

expression->identifier

entspricht

(*expression).identifier

ist expression ein Zeigerwert.

Beispiele

Die folgenden Beispiele beziehen sich auf diese Strukturdeklaration. Informationen zum in diesen Beispielen verwendeten Dereferenzierungsoperator (*) finden Sie unter "Dereferenzierung" und "Address-of-Operator".

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

Ein Elementauswahlausdruck für die item Struktur sieht wie folgt aus:

item.sp = &item;

Im Beispiel wird die Adresse der item Struktur dem sp Element der Struktur zugewiesen. Dies bedeutet, dass item ein Zeiger auf sich selbst enthalten ist.

(item.sp)->a = 24;

In diesem Beispiel wird der Zeigerausdruck item.sp mit dem Memberauswahloperator (->) verwendet, um dem Element aeinen Wert zuzuweisen.

list[8].b = 12;

Diese Anweisung zeigt, wie Sie ein einzelnes Strukturelement aus einem Array von Strukturen auswählen.

Siehe auch

Mitgliedszugriffsoperatoren: . und->