C-Programmierung

Zeiger

Parameterübergabe | | Zeiger-Array Dualismus

C/C++ bietet außer Referenzen noch sog. Zeiger.

Ein Zeiger ist eine Variable, die Speicheradressen beinhalten kann. Die Dereferenzierung eines Zeigers liefert als Wert den Inhalt des referenzierten Speicherbereichs.

In Java gibt es keine Zeiger sondern nur Referenzen. Man kann mit Java also nicht direkt auf Speicherbereiche zugreifen, sondern nur über den Umweg von Variablen bzw. Arrays.

In Java sind Zeiger aus dem Grund nicht erlaubt, dass die direkte Manipulation von Speicherbereichen über Zeiger zwar effizient aber sehr fehleranfällig und unsicher ist. Java lässt dies daher nicht zu und stellt Speicher nur implizit zur Verfügung und löscht Speicher nur implizit mittels der Garbage Collection.

In C/C++ kann über Zeiger der Speicher explizit verwaltet werden (malloc/free bzw. new/delete). Dies bietet Effizienzvorteile, bedingt aber auch immer die Gefahr von Memory Leaks bei unsauberer Programmierung.

Das Besondere an Zeigern ist außerdem, dass aus C/C++ Sicht ein Zeiger und ein Array identisch sind (Zeiger-Array Dualismus).


Parameterübergabe | | Zeiger-Array Dualismus

Options: