![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]()
Bevor unsere Datenstrukturen dynamisch werden werde ich Ihnen erst mal die Grundlagen zeigen. Fangen wir mit dem einfachsten an. Was machen sie wenn sie ein Programm schreiben sollen das Adressen verwalten soll? Folgende Datentypen sind definiert...
Nun wenn sie jetzt das Adressprogramm schreiben wollen, müssten sie alle Parameter für Einlesen, Bearbeiten und Ausgeben den Wert einzeln übergeben. Ziemlich umständlich! Nun dafür gibt es
Strukturen. Jetzt unser Adresssatz mal in einer Struktur....
So jetzt haben wir unseren Adresssatz in ein Struktur Namens 'adres' gepackt. Die Sichtbarkeit und die Lebensdauer von Strukturen ist dieselbe wie bei einfachen Variablen. Der Inhalt unserer Struktur 'adres' wird in geschweifte Klammern gepackt. Am Ende der geschweiften Klammern steht der Name ('adressen') über den wir auf die Struktur 'adres' zugreifen.
Als Datentypen können sie hier jeden, den sie bisher kennen gelernt haben
verwenden. Auch und vor allem Zeiger lassen sich prima dafür verwenden.
Aber dazu später mehr. ![]() In diesem Beispiel haben wir einen Typ Namens index definiert. Dieser Typ kann einen int-Wert und einen String mit 30 Zeichen aufnehmen. Folglich beträgt die Gesamtgröße der Struktur 34 Bytes (auf 16 Bit-Systemen 32 Bytes, da int==2 Bytes). Die nächste wichtige Frage dürfte sein: Wie bekomme ich die Werte in diese Variablen bzw. wie greife ich auf die einzelnen Variablen in der Struktur zu? Auch das ist nicht schwer. Zugegriffen wird auf die einzelnen Variablen, mit Hilfe des Punktoperators (.). Ansonsten läuft es genauso ab wie bei einer normalen Variable.... ![]() Mittels..... struct index lib;
...erzeugen wir ein Variable Namens lib vom "Datentyp" index.
Diese Extra-Definition könnten wir uns sparen wenn wir folgende
Schreibweise verwenden.......
Und wenn wir den Typennamen ebenfalls nicht benötigen könnten wir unsere
Struktur auch so definieren......
Es spricht auch nichts dagegen mehrer Typen zu definieren....
Hier haben wir gleich 3 Variablen vom Typ index definiert.
Die Strukturen können natürlich, wie normale Datentypen auch, direkt
bei der Definition mit einem Wert initialisiert werden....
...oder in der main-Funktion...
Wenn es ihnen jetzt etwas wirr im Kopf wird, keine Sorge, jetzt kommen
wir zur Praxis.
Am Anfang haben wir unsere Struktur die ich oben schon beschieben habe. Anschließend wollen wir mit der main - Funktion beginnen. Mit.....
..geben wir unseren Vorname ein. Der Zugriff auf die Struktur erfolgt erst über den Namen unsere Struktur dann kommt ein Punkt und anschließend welcher Variablen unserer Struktur wir einen Wert übergeben wollen. Wenn wir den Vornamen direkt an unsere Struktur übergeben wollen, ohne gets() können sie das so machen....
Hier könnten sie alternativ falls sie die Postleitzahlen direkt im Programm initialisieren wollen so schreiben...
Hiermit übergeben wir den Wert direkt an die Struktur Namens 'adressen' vom Typ 'adres'. Anschließend folgen noch Wohnort und Geburtsjahr. Jetzt rufen wir unser Funktion 'ausgabe' mit...
..auf und übergeben als Parameter Struktur Namens 'adressen'. Anschließend wird unsere Eingabe auf dem Bildschirm ausgegeben.
Ein kleiner Tipp wie sich sich Strukturen besser Vorstellen können falls noch nicht geschehen....
Wenn sie jetzt 'int x' einen Wert zuweisen machen sie das so.... x=1999
Bei der Struktur kommt noch ein kleiner Zusatz hinzu, wir geben z.B aus unserem Programm unserer Variablen 'int geburtsjahr' einen Wert....
Sie müssen aber bei Strukturen beachten was für einen Variablentypen (char,int,long....) sie einen Wert übergeben.
Bitte vermeiden sie folgende Wertzuweisung von Strukturen.........
Dies ist zwar erlaubt in C, aber kann zu Fehlern führen wenn ein Compiler
dies nicht unterstützt.
Verwenden sie daher, auch wenn es bei Ihnen läuft, folgende Kopierweise...
Dies soll nur ein Hinweis sein und keine Regel! ![]() ![]() ![]() |