Datentypen in "C", Teil 4

Strukturen

Mit Strukturen können mehrere Variablen unterschiedlichen Typs unter einem gemeinsamen Namen zusammengefasst werden. Dies entspricht den Records in Pascal.

Die folgende Strukturdeklaration beschreibt den Datensatz für eine Personenbeschreibung:

         struct person {
                   char     name[21];        /* Nachname mit max. 20 Stellen plus Nullbyte */
                   char     vorname[11];   /* Vorname mit max. 10 Stellen plus Nullbyte */
                   int        geb_tag;          /* Geburtsdatum - Tag */
                   int        geb_monat;     /* Geburtsdatum - Monat */
                   int        geb_jahr;         /* Geburtsdatum - Jahr */
         };

Wir können nun eine Variable mit der gewünschten Datenstruktur definieren und mit Werten füllen. Dazu verwenden wir den Punkt-Operator '.':

         struct person         pdaten;

         strcpy (pdaten.name, "Hugentobler");
         strcpy (pdaten.vorname, "Werner");
         pdaten.geb_tag = 13;
         pdaten.geb_monat = 8;
         pdaten.geb_jahr = 1953;

Wird auf eine Strukturvariable über einen Zeiger zugegriffen, so verwenden wir anstelle des '.'-Operators den Dereferenzierungsoperator (Pfeil-Operator) '->'.

         struct person         *ppdaten;    /* Zeiger auf eine Struktur */

         ppdaten = &pdaten;       /* ppdaten zeigt jetzt auf die Strukturvariable pdaten */
         ppdaten->geb_dat = 24; /* Element geb_tag wird auf den Wert 24 gesetzt */

Selbstverständlich können Strukturen als Elemente wiederum Strukturen und auch Arrays enthalten.