? Programmierer die C- Programmiersprache für Systemsoftware und Low-Level- Code. Aus diesem Grund ist eine der Funktionen der C die Bildung von komplexen Datenstrukturen. Diese Strukturen enthalten Daten zusammen , sammelte oft die ein größeres Stück von Daten mit vielen relevanten Werte . Zugriff auf diese Werte bedeutet verweisen sie mit der Struktur entweder mit der besonderen "Punkt" und "Pfeil " Notationen ( je nach Situation ) . C Strukturen
Erstellen eines komplexen Datentyp in C beinhaltet die Schaffung , was als eine Struktur bekannt , mit dem " struct " Schlüsselwort. Diese Strukturen werden in der Regel zwei oder mehr Daten -Variablen , und stellen eine kohärente Datentyp (und nicht nur als eine Sammlung von zufälligen Daten ) . Zum Beispiel stellt die folgende C-Struktur einen Knoten in einer größeren Datenstruktur und enthält einen Teil der Daten , und einen Zeiger auf eine andere Struktur des gleichen Typs :
struct Node { int
Daten = 1;
struct Node * next ;
};
Pointers
innerhalb der "Node "-Struktur besteht ein Zeiger auf einen anderen Node -Struktur. Zeiger auf Strukturen sind sehr häufig beim Passieren Struktur-Variablen zu den Funktionen. Sie sind auch ein Faktor bei der Entscheidung, welche Schreibweise ein Programmierer verwenden sollten, um Strukturdaten verweisen. Pointers eine Erinnerung schaffen Bezug auf einen Datentyp , anstatt eine flache Variable für den Datentyp. So im folgenden Beispiel erklärt die erste Erklärung eine variable Struktur in einem lokalen Bereich , was bedeutet, es muss kopiert werden und bewegt werden. Die zweite Deklaration deklariert einen Zeiger auf eine Struktur im Speicher, können Dinge wie dynamische Speicherzuweisung :
struct Node x ;
struct Node * y;
Dot Notation
die Notation erforderlich, um Daten in Strukturen zugreifen , hängt vom Kontext der Struktur. Wenn der Programmierer deklariert eine Struktur-Variable als lokale Variable , dann wird sie Daten über Punktschreibweise zugreifen . Dot Notation verbindet einfach eine Struktur Variable und eine Struktur Datenelement durch eine Punkt-Symbol ("." ) . Die folgenden Beispiele zeigen, wie die Programmierer würden Daten von einem Knoten durch variable Punktschreibweise abrufen :
struct Node x ;
int j = x.data //j jetzt gleich eins
Pfeil Notation
Die anderen Kontext für das Abrufen von Daten aus Strukturen ist, wenn der Programmierer hat einen Zeiger auf eine Struktur , anstatt eine lokale Variable . Wenn die Programmierer einen Zeiger auf eine Struktur schafft , haben zwei Dinge passieren. Erstens müssen sie erklären, die Struktur Zeiger . Zweitens müssen sie Speicher zuweisen , so dass der Zeiger verweist auf Speicher mit der richtigen Größe . Dann können sie mit der Pfeil- Notation ( "->" ) , auf Daten zuzugreifen :
struct Node * y;
y = malloc ( sizeof (struct Node) ); //Speicher zuweist //integer j jetzt gleich eins
; in der Größe eines Node struct
int j = y -> Daten y