Zeiger - Dynamische Datenstrukturen

Zeiger

Ein Zeiger (engl. Pointer) ist in der Informatik ein Verweis auf eine Adresse im Speicher.


Erklärung

Du kannst dir den Zeiger in der Informatik wie einen Uhrzeiger vorstellen:

Der Zeiger bei der Uhr zeigt auf die jeweilige Uhrzeit.

Der Zeiger in der Informatik zeigt auf eine Adresse im Speicher.

Das ist auch schon das grobe Prinzip eines Zeigers.

Ein Zeiger referenziert, verweist oder zeigt auf einen Platz im Hauptspeicher, in dem zum Beispiel Objekte oder Variablen gespeichert sein können.

Um an diese gespeicherten Daten zu gelangen, wird dann einfach wieder dereferenziert.

Zeiger werden beispielsweise bei dynamischen Datenstrukturen, wie der Liste, verwendet.

Um dir besser vorstellen zu können, was genau diese Zeiger eigentlich tun, schau dir folgende Tabelle an:

Adresse

Inhalt

Variable

1

4

a

2

9

b

3

7

c

Um den Inhalt einer Variablen zu speichern, wird dieser an einer bestimmten Adresse im Speicher gespeichert.

Die Variable zeigt dann auf diese Speicheradresse, an dem der Inhalt der Variablen gespeichert wurde.

Schau dir zum Verständnis die 1. Zeile an:

Die Variable a zeigt auf die Speicheradresse 1, an der die Zahl 4 gespeichert wurde.

Du kannst auch mithilfe eines neuen Zeigers auf eine schon gefüllte Adresse im Speicher zugreifen. Schau dir dafür die folgende Tabelle an:

Adresse

Inhalt

Variable

1

5

a

2

1

b

3

4

c

Variable b hat hier die Adresse 1 als Inhalt. Dadurch ist der tatsächliche Inhalt von b die 5.

b hat also denselben Inhalt wie a, da beide Variablen auf dieselbe Adresse im Speicher zeigen.

Ändert sich also der Inhalt von a, dann ändert sich automatisch auch der Inhalt von b.

Nutzungskontext

Zeiger werden beispielsweise verwendet, um dynamische Speicher zu verwalten.

So kann man dynamische Datenstrukturen, wie verkettete Listen, mithilfe von Zeigern einfach umsetzen.

Vor allem in den Programmiersprachen C, C++, oder Assembler sind Zeiger extrem wichtige Konzepte.

In der Programmiersprache Java wird das Konzept der Referenzen angewendet. Diese funktionieren ähnlich wie Zeiger.

Zeiger werden jedoch in den Programmiersprachen unterschiedlich eingesetzt.

Arten von Zeigern

Die wichtigsten Zeiger sind:

  • Null-Zeiger:

    • Zeiger zeigt ins Nichts.
    • Werden gerne verwendet, um eine Leerstelle zu kennzeichnen.
    • Beispiel: Werden bei Listen eingesetzt, um zu zeigen, dass kein weiterer Knoten folgt.
  • Typisierter Zeiger:

    • Zeiger ist mit einem Datentyp verknüpft.
    • Beispiel: Ein Integer-Zeiger kann nur auf ein Objekt mit dem Typ Integer zeigen.
  • Untypisierter Zeiger:

    • Zeiger ist nicht mit einem Datentyp verknüpft.
    • Sie können nicht dereferenziert, inkrementiert oder dekrementiert werden.
    • Sie müssen vor dem Zugriff in einen typisierten Zeigertyp umgewandelt werden.
  • Uninitialisierte Zeiger:

    • Zeiger, der dereferenziert wird, ohne auf einen gültigen Speicherbereich des entsprechenden Typs zu zeigen.

Vor- und Nachteile

Vorteile

Nachteile

Können Programmablauf beschleunigen.

Kompliziert

Können Speicherplatz sparen.

Fehleranfällig


Beispiel

Schau dir die folgende Tabelle an:

Adresse

Inhalt

Variable

1

4

a

2

1

b

3

2

c

  • a zeigt auf die Speicheradresse 1 und hat den Inhalt 4.
  • b zeigt auf die Speicheradresse 2 und hat als Inhalt die Speicheradresse von a, also hat b den Inhalt 4.
  • c zeigt auf die Speicheradresse 3 und hat als Inhalt die Speicheradresse von b, wobei wir ja schon wissen, dass b den Inhalt 4 hat, weswegen auch c den Inhalt 4 hat.
No items found.

simpleclub ist am besten in der App.

Mit unserer App hast du immer und überall Zugriff auf: Lernvideos, Erklärungen mit interaktiven Animationen, Übungsaufgaben, Karteikarten, individuelle Lernpläne uvm.

Jetzt simpleclub Azubi holen!

Mit simpleclub Azubi bekommst du Vollzugang zur App: Wir bereiten dich in deiner Ausbildung optimal auf deine Prüfungen in der Berufsschule vor. Von Ausbilder*innen empfohlen.

Jetzt simpleclub Azubi holen