Übersicht über Zeiger / Pointer in C
|
Deklaration und Definition
|
int *zeiger;
Deklaration eines Zeigers zeiger auf einen int |
|
Speicheradresse einer Variable in Zeiger speichern
|
int i; |
|
Auf den Wert (nicht die Speicheradresse) eines Zeigers zugreifen
|
int i; |
|
Zeigerwert NULL
|
In stdio.h definiert. Wird genutzt, um zu vermeiden, dass ein Zeiger irgendwohin zeigt.
NULL ist ein Zeiger! |
|
unveränderbare Zeiger
|
Werden wie Variablen mit dem Schlüsselwort
const definiert. |
|
Zeiger auf Zeiger
|
Zeiger können auch auf andere Zeiger zeigen.
int Wert = 1234; |
|
Operator
|
Funktion
|
|
&
|
Adressoperator
Greift auf die Speicheradresse der Variablen, auf die der Zeiger zeigt zu. |
|
*
|
Variablenoperator
Greift auf den Wert der Variablen, auf die der Zeiger zeigt, zu. |
|
Array
|
Zeiger
|
Adresse
|
Inhalt
|
|
IntArray[0]
|
*IntZeiger
|
00004711h
|
5
|
|
IntArray[1]
|
*(IntZeiger + 1)
|
00004715h
|
4
|
int *IntZeiger = NULL; int IntArray[5]; IntZeiger = IntArray;IntArray[0] = 5; IntArray[1] = 4; *IntZeiger = 5; |
Zeiger können mit ganzen Zahlen addiert und Subtrahiert werden.
|
|
Zwei Zeiger gleichen Typs lassen sich subtrahieren.
ip1 = 1 - ip2 wäre verboten, da 1 vom Typ int und ip2 vom Typ int * ist. |
|
Alle anderen Operationen, wie Multiplikation oder Division usw. sind nicht erlaubt.
|
|
Es wird nicht in Bytes, sondern in Anzahl von Elementen des Datentyps, auf den der Zeiger zeigt, gerechnet.
Wird 1 zu einem Zeiger auf int addiert, zeigt er nicht auf die nächste Speicheradresse, sondern auf den nächsten int. |
int i1 = 5, i2 = 7; |
|
|
Operation
|
erlaubt?
|
|
ip2 = ip1 + 1;
|
ja - Zeiger und ganze Zahl
|
|
ip1 = ip2 - 1;
|
ja - Zeiger und ganze Zahl
|
|
ip2 = 1 + ip1;
|
ja - Zeiger und ganze Zahl
|
|
ip1 = 1 - ip2;
|
nein - es können nur Zeiger gleichen Typs subtrahiert werden
|
|
i1 = ip1 + ip2;
|
nein - keine ganze Zahl, sondern zwei Zeiger
|
|
i2 = ip2 - ip1;
|
ja - zwei Zeiger vom gleichen Typ
|
|
Definition
|
int i1 = 5 |
No comments yet.
Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.