Ein Computer nutzt seine Speicher , um Daten mit Werten , wie Zahlen, Zeichen und Bit-Werte speichern. Die Daten in den Speicherzellen mit einer eindeutigen Speicheradresse identifiziert wird . Zeiger sind Datenstrukturen , die keine Werte , sondern enthalten Zeiger eine Speicheradresse einer Speicherzelle , die einen Wert speichert . Zeiger sind nützlich , weil sie Ihnen Datenstrukturen ohne definierte Größe (wie Arrays und verkettete Listen ) konstruieren lassen , zuordnen und freigeben dynamischen Speicher und führen indirekte Datenmanipulation. C Strings
Programmiersprachen arbeiten mit begrenzten Ressourcen. Ein Programm muss wissen, wie viel Speicher wird vor der Ausführung benötigen . Dadurch entsteht das Problem der Verwaltung einen Datentyp, der keine definierte Größe hat (zum Beispiel ein Programm, das " liest" den Absätzen , mit jedem Absatz eine unterschiedliche Länge ) . Zeiger adressieren diese Situation in Form von C -Strings. AC String wird durch einen Zeiger aus , die auf dem ersten Zeichen an der Schnur , und ein Zeichen , das das Ende des Strings (wie die neue Zeile , "\\ n" ) signalisiert . Der Zeiger wird jedes Mal um 1 erhöht, bis es zum letzten Zeichen verweist ( "\\ n" ) .
Linked Lists
Eine verkettete Liste ist eine Liste, die erhöht seine Größe als neue Elemente in die Liste aufgenommen zu werden . Im Gegensatz zu Arrays und C-Strings , die Daten sequenziell im Speicher , verkettete Listen sind nicht unbedingt in benachbarten Speicher -Adressen gespeichert. Verknüpfte Listen von Knoten und jeder Knoten zum nächsten Knoten gebildet wird. Der Vorteil dieser Datenstruktur ist , dass die Liste seiner Größe ändert basierend auf Bedürfnisse der Nutzer .
Dynamische Speicherzuweisung
Programme normalerweise den Speicher reservieren , wenn sie gebaut . Manchmal ist die zugewiesenen Speicher nicht ausreicht, um Daten mit unbekannten Größe zu behandeln . Programmierer verwenden eine Technik namens dynamische Speicherzuweisung um sicher zu sein , dass das Programm dieses Problem zu überwinden . Dynamischer Speicher mit einem Zeiger auf eine Speicheradresse außerhalb des Speichers beiseite zunächst durch das Programm zugegriffen wird. Pointers auch den Speicher freigeben , sobald es nicht mehr benötigt wird .
Indirekte Data Manipulation
Programmiersprachen erfordern oft Modifikation der Daten Wert . Programme verwenden Funktionen zu verändern und Operationen auf Daten . Aufgrund der Hierarchie über Programme, die Daten ständig kopiert und freigegeben , sobald es an Funktionen übergeben wird . Funktionen die Daten ändern , aber sobald die Daten verwendet werden, werden diese Änderungen verloren . Mit Zeigern anstelle von grundlegenden Datentypen sorgt dafür, dass wir eine Speicheradresse übergeben zu den Funktionen. Auf diese Weise Änderungen an den Daten auf der Speicherkarte gespeicherten Adresse wird für den Rest der Ausführung des Programms bleiben .