WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Call by Value, Call by Reference (http://www.wcm.at/forum/showthread.php?t=98287)

kikakater 29.05.2003 12:01

Es gibt 3 Arten Übergabeparameter im Kopf einer Funktion zu vereinbaren. Abhängig von der Definition der Parameter greift man auf unterschiedliche Bereiche im Speicher zu, zusätzlich verändert sich die Schreibweise bei Referenzen.

Code:

1. Wertübergabe: beispiel(3);
int beispiel(int v)
{
 v=v+1; // Veränderung einer Variable am Stack
 return v;
}

2. Adressübergabe: a=3; beispiel2(&a);
void beispiel2(int * pv)
{
 *pv= *pv + 1; // Veränderung der Originalvariable
}

3. Referenzübergabe (nur bei c++ vorhanden): a=3; beispiel3(a);
void beispiel3(int & ra)
{
 ra= ra + 1; // Originalvariable wird verändert, trotzdem keine Zeigersemantik im Quellprogramm
// (kein *ra sondern ra und ra wird bedeutungsmäßig (semantisch) als int Wertvariable verwendet,
// von der Syntax her aber als Zeigervariable vom Parser und Compiler betrachtet.
}

mfg
Kikakater


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag