Start Person Technik Reisen Fotos
English

Pointer sind Elemente vieler prozeduraler Programmiersprachen, die es ermöglichen, auf verschiedene Speicheradressen und damit dort abgelegte Daten zuzugreifen. Durch sie wird die Implementierung vieler abstrakter Datentypen wie Listen, Bäume, Maps und viele mehr möglich. Oft sind Pointer an den Datentyp gebunden, den sie referenzieren. Dies ermöglicht eine Typprüfung durch den Compiler.

In der Programmiersprache C++ ist es zum einem möglich, die Pointer selbst zu verändern, also auch verschiedene Speicherbereiche anzusprechen. Zum anderen kann man Void-Pointer verwenden, also Zeiger, deren Zieldatentyp unspezifiziert ist. Damit bietet sich dem Programmierer die Möglichkeit, generische Datenstrukturen zu implementieren. Beispielsweise könnte man einen Stack realisieren, den man wahlweise mit Integer-, Character- oder Double-Werten befüllen kann. Die Applikation muss nun allerdings wissen, wie sie die referenzierten Daten zu interpretieren hat.

Hier ein Beispiel [Aus: Thinking in C++]:

//: C03:VoidPointer.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
int main() {
  void* vp;
  char c;
  int i;
  float f;
  double d;
  // The address of ANY type can be
  // assigned to a void pointer:
  vp = &c;
  vp = &i;
  vp = &f;
  vp = &d;
} ///:~

Ich habe den Domainnamen voidpointer gewählt, weil mir das Konzept der untypisierten Zeiger gefällt. Es soll ein Synonym für meine unterschiedlichen persönlichen Interessen sein. Allerdings bevorzuge ich die Programmiersprache Java, die keine Pointer kennt...

11.01.2005, Achim Walther, Mail