Durchschnittlicher Fortschritt
Gewusst0
Nicht gewusst0
Noch nicht gestartet10

Empfohlene Karteikarten-Sets

Karteikarten im Karteikarten-Set

Noch nicht gestartet (10)

Dynamische Objekte

Dynamische Objekte werden erst zur Laufzeit des Programms erzeugt.

Der Speicherplatz wird erst zur Laufzeit reserviert.

Mit Zeigern werden dynamische Objekte, erzeugt, verwaltet und wieder gelöscht.

Semantik von Zeigern

Zeiger sind wie Variablen.

Sie haben einen Namen und speichern einen Wert.

Zeiger können mit Ihrer gespeicherten Adresse auf etwas zeigen.

Zeiger zeigen auf eine andere Speicherstelle, die Speicherstelle, deren Adresse sie speichern.

Schreibweise und Deklaration von Zeigern

Zeiger werden mit einem Stern * vor dem Variablennamen deklariert.

Man ließt es als „Zeiger auf“

Mit int *iptr vereinbart man einen “Zeiger auf int“

Adressoperator und Zuweisungen von Zeigern

1.Ein Zeiger kann durch Zuweisung wie bei normalen Variablen Werte=Adressen von anderen Zeigern erhalten, zugewiesen werden.

2.Ein Zeiger kann über den Adressoperator & die Adresse von einer anderen Variablen erhalten.

3.Ein Zeiger kann durch Erzeugung eines dynamischen Objektes eine Adresse erhalten (später).

Dereferenzierung

Wir können über den Zeiger auf den Wert der Speicherzelle, auf den der Zeiger zeigt, lesend und schreibend (*iptr = 22;) zugreifen.

Wir nennen das Dereferenzierung.

Dafür schreiben wir den Operator * vor die Variable.

Initialisierung / Nullzeiger

Zeiger sind (wie normale Variablen auch) nach der Deklaration mit einem undefinierten Wert belegt.

Da diese „Zufallswerte“ auch in die Datenbereiche unseres Programms zeigen können, besteht bei falscher Anwendung des Zeigers die Gefahr des Überschreibens unserer Daten.

Zeigerarithmetik

Zeiger haben eine Arithmetik.

Man kann ganzzahlige Werte addieren/abziehen oder inkrementieren/dekrementieren

Man benutzt die Rechnungen, um Adressen oder Adressdifferenzen zu ermitteln.

Operator new

Mit new wird dynamischer Speicherplatz bestimmter Größe zur Laufzeit vom Heap reserviert.

Die Größe des reservierten Speichers richtet sich nach dem Datentyp, der als Parameter hinter new angegeben wird: new < Typ>

Operator delete

Mit delete ptr; geben wir den Speicher wieder frei.

Der Wert des Zeigers ist nach der delete Operation undefiniert !

Referenzen

Eine Referenz ist ein Datentyp, der einen Verweis auf ein anderes Objekt / Variable liefert.

Die Referenz bildet einen Alias-Namen für eine Objekt / Variable, über den es ansprechbar ist.

Um eine Variable als Referenz zu deklarieren wird das & Zeichen benutzt.

Referenzen müssen bei der Deklaration initialisiert werden.