Was ist eine Referenzvariable in C++?

Lesezeit: 6 Minuten

Was ist eine Referenzvariable in C
sirius79m

Was wäre eine kurze Definition einer Referenzvariablen in C++?

  • Referenzen können nützlich sein, da sie die Verwendung von initialisiertem Speicher erzwingen (dh sie können bei normaler Verwendung nicht auf null verweisen).

    – Nick Bolton

    4. Mai 2010 um 14:14 Uhr

  • Eine Referenz ist nur syntaktischer Zucker für a const Zeiger (nicht unbedingt Zeiger auf Konstante). Es gibt keinen besonderen Schutz gegen einen Verweis auf NULL, es verursacht ein undefiniertes Verhalten, genau wie das Dereferenzieren eines NULL-Zeigers. Umständlich kann man sagen, dass der Aufrufer gegen den C++-Standard verstoßen hat, indem er NULL dereferenziert und eine NULL-Referenz übergeben hat, anstatt gegen den API-Vertrag zu verstoßen, indem er einen NULL-Zeiger als nicht nullbaren Parameter übergeben hat, aber technisch und im typischen Laufzeitverhalten gibt es keinen Unterschied was auch immer.

    – Ben Voigt

    4. Mai 2010 um 14:18 Uhr

  • stackoverflow.com/questions/57483/…

    anon

    4. Mai 2010 um 14:25 Uhr

EIN Hinweis ist eine Entität, die ein Alias ​​für eine andere ist Objekt.

EIN Hinweis ist kein Variable Als ein Variable wird erst durch die Erklärung von an eingeleitet Objekt. Ein Objekt ist ein Speicherbereich und in C++ belegen Verweise (notwendigerweise) keinen Speicherplatz.

Als Objekte und Verweise sind unterschiedliche Gruppen von Entitäten in C++, daher ist der Begriff “Referenzvariable” nicht sinnvoll.

  • Nun, nicht noch eine Variable. Gut, dass C++0x das behebt – es ist ein seit langem bestehendes Problem im Standard. Sehen open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#633 und werfen Sie einen Blick auf n3090, es wurde bereits in die FCD integriert. Wie auch immer, der Vollständigkeit halber könnten Sie erwähnen, dass Referenzen auch auf Funktionen verweisen können. +1 für technische Genauigkeit 🙂

    – Johannes Schaub – litb

    4. Mai 2010 um 16:48 Uhr


  • Entschuldigung, dass ich einen alten Beitrag wieder aufgreife. Bedeutet das, dass ich in C++ 11/14/17 den Begriff „Referenzvariable“ sicher verwenden kann, wenn ich darüber spreche? int& b = a ?

    – Ilio Catallo

    22. Oktober 2015 um 9:27 Uhr

  • Seit C++11, Variable bedeutet Referenz oder Objekt. Sehen [basic]/6 in C++14 zum Beispiel: “A Variable wird durch die Deklaration einer anderen Referenz als eines nicht statischen Datenmembers oder eines Objekts eingeführt. Der Name der Variablen, falls vorhanden, bezeichnet die Referenz oder das Objekt.”

    – MM

    17. Februar 2016 um 23:51 Uhr


  • Gute Antwort – jeder, der viel Zeit mit Grokking verbracht hat vollständig objektbasierte Sprachen (wie Python) werden Ihnen sagen, dass sogar die Erste Der Name, der einem Objekt gegeben wird, ist technisch gesehen eine Referenz 🙂 Der Objekt selbst ist namenlos, es macht nur wenig Sinn, einen zu erstellen, der auf irgendeine Weise dorthin gelangt.

    – paxdiablo

    10. Juli 2017 um 5:47 Uhr


1647100812 251 Was ist eine Referenzvariable in C
pankaj bhatt

Eine Referenzvariable stellt einen Alias ​​(alternativen Namen) für eine zuvor definierte Variable bereit. Zum Beispiel:

float total=100;
float &sum = total;

Es bedeutet beides total und sum sind die gleichen Variablen.

cout<< total;
cout << sum;

Beide geben den gleichen Wert, 100. Hier die & operator ist nicht der Adressoperator; float & bedeutet einen Verweis auf Float.

1647100812 183 Was ist eine Referenzvariable in C
aJ.

Eine Referenzvariable ist ein Alias ​​(ein alternativer Name) für ein Objekt. [From the C++ FAQ].

  • Tolle häufig gestellte Frage: “Verwenden Sie Referenzen, wenn Sie können, und Hinweise, wenn Sie müssen.”

    – Hernán Eche

    4. Mai 2010 um 14:16 Uhr

1647100813 115 Was ist eine Referenzvariable in C
Daniel Wassallo

Der erste Absatz des Wikipedia-Artikel könnte leicht als kurze Definition dienen:

In der Programmiersprache C++ ist eine Referenz ein einfacher Referenzdatentyp, der weniger leistungsfähig, aber sicherer ist als der von C geerbte Zeigertyp.

Und zitiere aus demselben Artikel:

C++-Referenzen unterscheiden sich von Zeigern in mehreren wesentlichen Punkten:

  • Es ist nicht möglich, direkt auf ein Referenzobjekt zu verweisen, nachdem es definiert wurde; Jedes Vorkommen seines Namens bezieht sich direkt auf das Objekt, auf das es verweist.

  • Sobald eine Referenz erstellt wurde, kann sie später nicht mehr auf ein anderes Objekt verweisen; es kann nicht neu eingesetzt werden. Dies geschieht oft mit Zeigern.

  • Referenzen können nicht null sein, während Zeiger dies können; Jede Referenz bezieht sich auf ein Objekt, obwohl es gültig sein kann oder nicht.

  • Referenzen können nicht deinitialisiert werden. Da es unmöglich ist, eine Referenz neu zu initialisieren, müssen sie sofort nach ihrer Erstellung initialisiert werden. Insbesondere müssen lokale und globale Variablen dort initialisiert werden, wo sie definiert sind, und Verweise, die Datenelemente von Klasseninstanzen sind, müssen in der Initialisiererliste des Klassenkonstruktors initialisiert werden.

Weiterlesen:

1647100813 833 Was ist eine Referenzvariable in C
Enrico Carlesso

Es ist eine Variable, die Verweise noch einer:

int foo;
int& bar = foo;

bar ist jetzt eine Referenz, das soll heißen bar hält den Speicherort wo foo Lügen.

Sehen Hier für mehr Informationen.

  • Technisch nicht. Wenn bar eine Variable wäre, könnten Sie ihre Adresse erhalten. Eine Referenz ist ein Alias ​​für eine andere Variable (nicht die Adresse von, da dies implizieren würde, dass der Compiler eine Dereferenzierungsoperation einfügen müsste). Wenn dies kompiliert wird, wird bar wahrscheinlich nur durch foo ersetzt.

    – Martin York

    4. Mai 2010 um 15:07 Uhr

  • Ihr Text beschreibt einen Zeiger. Eine Referenz enthält keinen Speicherplatz und erfordert möglicherweise keinen Speicherplatz. (In Ihrem Beispiel wahrscheinlich bar verwendet keinen Speicher).

    – MM

    7. Juli 2015 um 23:40 Uhr

1647100814 463 Was ist eine Referenzvariable in C
cammando

EIN Referenzvariable ist ein alias für die Variablennamen.

Es unterscheidet sich von den Zeigern auf folgende Weise:

  1. Sie können keine NULL-Referenzen haben. Sie müssen immer davon ausgehen können, dass eine Referenz mit einem legitimen Speicherort verbunden ist.
  2. Sobald eine Referenz auf ein Objekt initialisiert wurde, kann sie nicht mehr geändert werden, um auf ein anderes Objekt zu zeigen, während wir im Falle eines Zeigers jederzeit auf ein anderes Objekt zeigen können.
  3. Eine Referenz muss zum Zeitpunkt ihrer Erstellung initialisiert werden. Zeiger können jederzeit initialisiert werden.

  • Technisch nicht. Wenn bar eine Variable wäre, könnten Sie ihre Adresse erhalten. Eine Referenz ist ein Alias ​​für eine andere Variable (nicht die Adresse von, da dies implizieren würde, dass der Compiler eine Dereferenzierungsoperation einfügen müsste). Wenn dies kompiliert wird, wird bar wahrscheinlich nur durch foo ersetzt.

    – Martin York

    4. Mai 2010 um 15:07 Uhr

  • Ihr Text beschreibt einen Zeiger. Eine Referenz enthält keinen Speicherplatz und erfordert möglicherweise keinen Speicherplatz. (In Ihrem Beispiel wahrscheinlich bar verwendet keinen Speicher).

    – MM

    7. Juli 2015 um 23:40 Uhr

Was ist eine Referenzvariable in C
Scott Stenland

Referenzvariablen ermöglichen es, dass zwei Variablennamen denselben Speicherplatz adressieren:

int main()
{
    int var1;

    // var2 is a reference variable, holds same value as var1

    int &var2 = var1;
    var1 = 10;

    std::cout << "var1 = " << var1 << std::endl;
    std::cout << "var2 = " << var2 << std::endl;
}

Ressource: VERKNÜPFUNG

994230cookie-checkWas ist eine Referenzvariable in C++?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy