Referenz (Informatik)

Referenz (Informatik)
Dieser Artikel oder Abschnitt ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) versehen. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Bitte entferne erst danach diese Warnmarkierung.

Eine Referenz repräsentiert einen Verweis auf ein Objekt. Wie der Zeiger stellt eine Referenz damit einen Aliasnamen für eine Entität dar, d. h. eine Variable, die die Speicheradresse einer anderen Variablen enthält. Im Gegensatz zu expliziten Zeigern ist die Adresse selbst nicht mehr änderbar und verborgen, insbesondere sind Operationen auf der Adresse (Zeigerarithmetik), die oft fehlerträchtig sind, nicht möglich. Referenzen werden häufig zur Parameterübergabe genutzt, wenn durch eine Unterfunktion die Werte eines Objektes dauerhaft geändert werden sollen, siehe auch Call by reference.

In der Programmiersprache Java unterscheidet man zwischen starken und schwachen Referenzen. Da Objekte dort nicht explizit zerstört und an den verfügbaren Speicher zurückgegeben werden, übernimmt dies ein sogenannter Garbage-Collector (deutsch Müllabfuhr) implizit, also ohne dass der Programmierer etwas dafür tun muss. Ein Objekt, das nicht stark referenziert ist, kann vom Garbage-Collector vernichtet werden, auch wenn noch schwache Referenzen darauf existieren. Schwache Referenzen sind z. B. für die Implementierung von Puffern nützlich.

Beispiel in C++

1. Wirkungsweise einer Referenz

int  nOriginal = 5;
int& nReferenz = nOriginal;     // Referenzobjekt angelegt
                                // die Referenz verweist auf das Original
                                // 
nReferenz  = 20;                // weist der Referenz und somit auch dem Original den Wert 20 zu
int nKopie = nOriginal;         // nKopie = 20

2. Beispiel zur Parameterübergabe als Referenz, siehe auch Call by reference.

void quadrieren(int& wert) {    // Definition der Funktion
    wert = wert * wert;
}
 
int main() {
    int nZahl = 5;
    quadrieren(nZahl);          // Aufruf der Funktion - danach nZahl == 25
    return 0;
}

Es wird mit der Originalvariablen gearbeitet, gleichgültig ob der Variablenname in der Funktion mit dem Namen der Aufrufvariablen identisch ist.

3. Beispiel für Objektreferenzen

Bank&  nBank   = Bankenverzeichnis::nachBLZ("76543210"); // eine Referenz auf ein Bankobjekt wird beschafft
Konto& nKonto1 = nBank.kontoZugriff("1234567");          // eine Referenz auf ein bestimmtes Kontoobjekt wird beschafft
Konto& nKonto2 = nBank.kontoZugriff("1111111");          // eine Referenz auf ein weiteres Kontoobjekt wird beschafft
nKonto1.einzahlung(100.00, "EUR", nKonto2);              // eine Methode wird auf nKonto1 gerufen

Die Referenzen nBank, nKonto1 und nKonto2 referenzieren jeweils ein Objekt. Das &-Symbol kennzeichnet diese Variablen als Referenzen im Sinne der Programmiersprache.

Beispiel in Pascal

1. Übergabe by reference (der Wert der übergebenen Variablen wird geändert):

procedure quadriere(var wert: integer);
begin
    wert := wert * wert;
end;

Dieser Prozedur kann nur eine Variable übergeben werden, kein Ausdruck. 'wert' ist der lokale Name der als Referenz übergebenen Variablen; mit der Zuweisung eines Werts wird direkt der Inhalt der übergebenen Variablen geändert.

2. Übergabe by value (also nur des Werts, nicht der Variablen selbst; der Wert der übergebenen Variablen wird nicht geändert):

function quadrat(wert: integer): integer;
begin
    quadrat := wert * wert;
end;

Selbst wenn eine Zuweisung an 'wert' erfolgen würde, würde dies den Inhalt einer etwa übergebenen Variablen nicht ändern: Übergeben wird nur ein Wert; der Bezeichner 'wert' steht für eine lokale Variable, die nur innerhalb der Funktion gültig ist.


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Pointer (Informatik) — Mit Zeiger oder Pointer wird in der Informatik eine spezielle Variable bezeichnet, die auf eine andere Variable oder Funktion verweist. Der referenzierte Speicherbereich enthält entweder Daten (Objekt, Variable) oder Programmcode. Zeiger auf… …   Deutsch Wikipedia

  • Zeiger (Informatik) — Der Zeiger a zeigt auf Variable b. Die Variable b enthält eine Nummer (hexadezimal 01101101) und die Variable a enthält die Speicheradresse von b (hexadezimal 1008). In diesem Fall passen die Adresse und die Daten in ein 32 bit Wort. Mit Zeiger… …   Deutsch Wikipedia

  • Baum (Informatik) — Ein Baum ist in der Graphentheorie ein spezieller Graph, mit dem sich eine Monohierarchie modellieren lässt. Je nachdem, ob die Kanten des Baums eine ausgezeichnete Richtung besitzen, lassen sich graphentheoretische Bäume unterteilen in… …   Deutsch Wikipedia

  • Funktion (Informatik) — Eine Funktion (engl.: function, subroutine) ist in der Informatik die Bezeichnung eines Programmierkonzeptes, das große Ähnlichkeit zum Konzept der Prozedur hat. Hauptmerkmal einer Funktion ist es, dass sie ein Resultat zurückliefert und deshalb… …   Deutsch Wikipedia

  • Option (Informatik) — Ein Parameter ist in der Informatik ein veränderliches Element eines Programms oder Unterprogramms, das bei der Definition des Unterprogramms formal angelegt (formaler Parameter) und beim Aufruf des Unterprogramms für jeweils diesen einen Aufruf… …   Deutsch Wikipedia

  • Funktor (Informatik) — Die C++ Standardbibliothek ist eine standardisierte Programmierbibliothek zur allgemeinen Verwendung. Sie stellt verschiedene generische Container, Funktionen zu deren Manipulierung, Funktionsobjekte, generische Zeichenketten (auch „Strings“… …   Deutsch Wikipedia

  • Selektion (Informatik) — Als Selektion bezeichnet man in der Informatik die Auswahl von Datenobjekten aus einer Datenmenge. Selektion ist ein wichtiger Teil von Datenbanken. In der Relationalen Algebra ist die Selektion daher einer von fünf Operatoren, der in… …   Deutsch Wikipedia

  • Parameter (Informatik) — Parameter sind in der Informatik Variablen, über die ein Computerprogramm oder Unterprogramm, für einen Aufruf gültig, auf bestimmte Werte eingestellt werden kann. Diese Einstellungen werden bei der Verarbeitung berücksichtigt und beeinflussen… …   Deutsch Wikipedia

  • Dereferenzieren — Mit Zeiger oder Pointer wird in der Informatik eine spezielle Variable bezeichnet, die auf eine andere Variable oder Funktion verweist. Der referenzierte Speicherbereich enthält entweder Daten (Objekt, Variable) oder Programmcode. Zeiger auf… …   Deutsch Wikipedia

  • Dereferenzierung — Mit Zeiger oder Pointer wird in der Informatik eine spezielle Variable bezeichnet, die auf eine andere Variable oder Funktion verweist. Der referenzierte Speicherbereich enthält entweder Daten (Objekt, Variable) oder Programmcode. Zeiger auf… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”