Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

18.08.2004, 23:26

Was ist der Unterschied zwischen Pointer und Referenzen ?

Hi,

ich bin gerade dabei C++ zu lernen und mir wurde die Seite empfohlen, wenn ich Probleme habe.
Deshalb wollte ich einfach mal eine Frage stellen.

Ich verstehe nicht wo der Unterschied liegt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void funcP(int *x)
{
    ++(*x);
}

void funcR(int &x)
{
    ++x;
}


int main()
{
    int iTemp = 0;
    
    funcP(&iTemp);
    cout << iTemp << endl; // = 1


    iTemp = 0;
    funcR(iTemp);
    cout << iTemp << endl; // = 1


        return 0;
}


Wo ist der Unterschied zwischen FuncP und FuncR???

Ich hoffe jemand nimmt sich meiner trivialen Frage an :-)

2

19.08.2004, 01:37

Der Unterschied ist recht schnell Erklärt und auch nicht so groß :)

Bei *Variable (wie dus ausgedrückt hast, oder auch einfach Pointer) bekommt man nicht die Variable selber sondern nur den Zeiger auf die Variable.
Der Pointer stellt dabei ebenfalls eine Variable dar. Diese Pointer-Variable speichert dann die Adresse der eigentlichen Variablen. Jede Variable liegt ja immer in irgendeinem Speicher (Stack, Heap).

Bei Referenzen (&Variable) sieht es ein wenig anders aus. Hier bekommt man nicht wie bei den Pointern eine Variable die die Adresse speichert, sondern die Variable direkt. Daher kann man mit ihnen auch ganz Normal arbeiten und muss sie nicht immer über die Dereferenzierungs-Operatoren ansprechen.


Ich verschieb das mal ins FAQ :) Da es eine Grundlegende Frage ist.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D