Version [22719]
Dies ist eine alte Version von ProzProg9Zeiger erstellt von RonnyGertler am 2013-03-28 19:59:00.
Prozedurale Programmierung - Kapitel 9 - Zeiger
Inhalte von Dr. E. Nadobnyh
C/C++ enthält ein umfangreiches Zeigerkonzept, welches einen direkten Zugriff auf den Speicherplatz ermöglicht.
Ein Zeiger ist eine Variable, die eine Adresse einer Variablen oder einer Funktion enthält.
Synonyme: Pointer, Pointervariable, Zeigervariable.
Man kann auf eine adressierte Variable oder Funktion indirekt über einen Zeiger zugreifen. Ein Zeiger adressiert eine Speicherstelle und gibt mit dem Typ an, wie diese Speicherstelle zu verwenden ist.
Bei Zeigern sind immer zwei unterschiedliche Typen verwickelt:
1) Zeigertyp (Pointertyp, Adresstyp) ist eigenen Datentyp des Zeigers und der Adresse.
2) Basistyp ist Typ der Variablen (des Objektes), auf die der Zeiger “zeigt“.
In C werden Zeiger auf eine Variable, auf eine Funktion, auf ein Feld und auf ein Zeiger definiert.
Zeiger auf eine Variable. Definition
Ein Zeiger wird wie jede andere Variable definiert: T* name;
Mit T* wird der Datentyp des Zeigers und mit T der Datentyp der adressierten Variable (Basistyp) bezeichnet.
Beispiel: int* p1; float* p2;
Die Zeigervariablen p1 und p2 haben die Datentypen „Zeiger auf int“ und „Zeiger auf float“.
Mit der Definition wird der Speicherplatz für den Zeiger reserviert. Ein Zeiger belegt bei einem 32-bit-Betriebs-system immer 4 Bytes.
Ein uninitialisierter Zeiger wird wie jede andere Variable mit dem zufälligen Wert oder mit 0 initialisiert. Die Verwendung des uninitialisierten Zeigers verursacht einen Fehler, der oft schwer zu finden ist.
Initialisierter Zeiger
Wie jede andere Variable erhält ein Zeiger einen sinnvollen Wert bei der Definition oder durch die Zuweisung.
Eine Variablenadresse kann z.B. mit dem Adressoperator erhalten werden.
Beispiel: int a=3; int* p=&a;
Nach der Zeigerinitialisierung sagt man "p zeigt auf a".
⇒ Demo 1.
CategoryProzProg