Vorherige Seite

Eine Ebene hoch

Nächste Seite

6.5 Zeiger auf Strukturen

Wie auf alle anderen Datentypen kann auch auf eine Struktur mit einem Zeiger verwiesen werden. Ein Zeiger wird wie gewohnt mit einen Stern vor dem Variablennamen definiert. (Z.B.: struct Adresse *pAdr; definiert die Variable pAdr als einen Zeiger auf den Datentyp strukt Adresse.) Die Funktion GetAdr soll die Daten der Struktur von dem Benutzer des Programms abfragen. Damit die Variable Adr von der Funktion variiert werden kann, wird der Funktion GetAdr die Adresse der Variable übergeben. Der Aufruf der Funktion erfolgt mit dem Operator & vor dem Namen der Variable.

Die Funktion GetAdr übernimmt den Parameter mit struct Adresse *ad. Damit erhält die Funktion einen Zeiger, der auf die Variable der aufrufenden Funktion zeigt.

Innerhalb der Funktion GetAdr kann wie gewohnt mit dem Operator * auf die Struktur zugegriffen werden (Z.B.: ... (*ad).GebMon ...). Für Zeiger auf Strukturen gibt es aber die verkürzte Schreibweise: ... ad->GebMon ... Der Operator -> (die Zeichen Minus und Größer) erwartet links einen Zeiger auf eine Struktur und rechts den Namen eines Elements aus dieser Struktur. Das Ergebnis ist der Inhalt dieses Elementes. Betrachten Sie die Zeile aus der Funktion GetAdr:

Links vom Gleichheitszeichen wird der Geburtsmonat aus der Struktur selektiert, auf die der Zeiger ad zeigt. Auf der rechten Seite steht die Funktion GetInt, die als Ergebnis eine ganze Zahl vom Typ int liefert, die in das selektierte Element der Struktur gespeichert wird.