Wertparameter
Wertparameter (engl. call by value oder pass by value) sind Parameter von Unterprogrammen, die Kopien der beim Aufruf übergebenen Argumente speichern. Neben Wertparametern stellen Programmiersprachen oft auch Referenzparameter zur Verfügung, die nur einen anderen Namen (Alias) für die übergebenen Argumente bilden und die Veränderung dieser erlauben können.
Beispiel
Die Programmiersprache C verwendet stets Wertparameter.
Funktionsdefinition:
void unwirksamerTausch(int p1, int p2) {
int tmp = p1;
p1 = p2;
p2 = tmp;
}
Funktionsaufruf:
int a1 = 1; int a2 = 2;
unwirksamerTausch(a1, a2);
printf("%i, %i", a1, a2);
Ausgabe:
1, 2
Die Werte der Variablen a1 und a2 werden bei der Übergabe an die Funktion unwirksamerTausch in deren Parameter p1 und p2 kopiert und nur innerhalb dieser vertauscht.
Felder werden in C stets als Zeiger angelegt und dieser, nicht das Feld, als Wertparameter übergeben. Auch Zeiger werden also als Wertparameter übergeben, Zeigerargumente also in die Funktionsparameter kopiert. Mit diesen Parametern können aber, aufgrund der Zeigernatur, die nicht zur Funktion gehörenden Daten verändert werden. Dies ist nicht gleichbedeutend mit einem call by reference, bietet aber ähnliche Möglichkeiten.
Implementierung
Wird eine Zuweisung innerhalb des Unterprogrammes an einen Wertparameter vorgenommen, muss ein Compiler beim Unterprogrammaufruf eine Kopie des Parameters erzeugen. Hierfür ist sowohl Speicherplatz als auch Ausführungszeit erforderlich. Bei größeren Datenstrukturen, wie z. B. großen Feldern, kann dies problematisch sein.
Optimierende Compiler können automatisch ermitteln, ob eine solche Kopie nötig ist und gegebenenfalls darauf verzichten.
Verwendende Programmiersprachen (Auszug)
Siehe auch
- Referenzparameter, auch call by reference
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.