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
C-/C++-Quelltext |
|
1 |
AufrufIrgendEinerFunktionMitPointerParameter(&MeineVariable);
|
Zitat
zeig mir eine leere (uninitialisierte) referenz
Zitat
Wenns aber ein Pointer ist, kann man die Speicherstelle auf jene er zeigt verändern so oft man will
Zitat von »"Bjarne Stroustrup"«
http://www.research.att.com/~bs/bs_faq2.html#pointers-and-references
Administrator
Zitat von »"Black-Panther"«
Wenn du einer Funktion eine konstante Referenz übergibtst, kannst du dir als Anwender der Funktion 100%ig sicher sein, dass jene die übergebenen Variablen nicht verändert.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void boeseFunktion(const int& x) { int* p_x = const_cast<int*>(&x); *p_x = 42; } int main(int argc, char** pp_argv) { int x = 17; boeseFunktion(x); printf("%d\n", x); return 0; } |
C-/C++-Quelltext |
|
1 2 3 4 |
void neFunktion (int &wert) { wert++; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
int Wert2 = 0; neFunktion (Wert2); /* dann erkennt man keinen unterschied mehr ob man der funktion nun eine variable nur zur verwendung oder zur veränderung übergeben hat.*/ |
C-/C++-Quelltext |
|
1 2 3 4 |
void neFunktion (int *wert) { wert++; } |
C-/C++-Quelltext |
|
1 2 3 4 5 |
//erkennt man sofort das die funktion die variable verändern kann. int Wert2 = 0; int *p_Wert2 = &Wert2; neFunktion (p_Wert2); |
Zitat von »"Wabachota"«
wenn die funktion aber einen zeiger erwartet:
C-/C++-Quelltext
1 2 3 4 void neFunktion (int *wert) { wert++; }
Werbeanzeige