Einzelnen Beitrag anzeigen
Alt 29.05.2003, 12:01   #21
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

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
kikakater ist offline   Mit Zitat antworten