Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
21.12.2001, 23:18
Diablo_bth



also Zeiger und Refrenzen sind ja ne feine Sache und man braucht auch beides! z.B. bei einem Vektor:

class Vector
{
float x, y, z;

public:
float& operator[] ( int index ) { return *(&x+index); }
}

nur durch die Refenz auf float kann man das hier
Vector v;
v[0] = 1.0f;
machen!

Referenzen werden in meinem Buch als Alias-Name eine Variable im Hauptspeicher erklärt. Das hört sich aber irgendwie nach "Adresse" an. was ist denn jetzt genau der Unterschied zwischen einem Zeiger und einer Referenz? Wird mein Programm schneler wenn ich eine Refenz anstatt einem Zeiger durch Funktionen "durchreiche" ?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
22.12.2001, 01:15
Kriz



Eine Referenz ist ein Aliasnamen für einen Zeiger. Der Zeiger bedeckt sich mit dem Namen der Variablen, so daß man meint, man arbeite direkt mit der Variablen. Es wird also implizit ein Zeiger auf die Variable erzeugt, nur das man direkt mit dem Variablennamen arbeiten kann.

Zeiger haben seit 80386er Spezifikation immer 32 Bit Länge, egal welchen Datentyp man verwendet, da der Zeiger ja die Adresse einer Variablen speichert und nicht deren Wert. Vorher, also bis 80286er CPUs, hatten Zeiger immer 16 Bit Adresslänge. Als Ausgleich zwischen 16/32 Bit Zeigern gab es in früheren C++ Versionen (und in C wahrscheinlich auch), die beiden mittlerweile ausgestorbenen Schlüsselwörter NEAR und FAR. NEAR bezeichnete einen 16 Bit Zeiger und FAR eben ein 32 Bit Zeiger.

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 22.12.2001 um 01:19 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche