Auf Pausenhof.de findest du viele Arbeiten, Facharbeiten und Referate für die Schule.

Referate und Hausarbeiten : Informatik

< zurück zu Referate - Informatik

Zeiger als Übergabeparameter


Zeiger als Übergabeparameter
In den bisherigen Beispielen wurden aufgerufene Funktionen mit keinem, einem oder mehreren
Parametern versorgt. Mit Hilfe dieser Parameter wurde dann ein Rückgabewert ermittelt, welcher
der aufrufenden Funktion zur Verfügung stand.
Im nachfolgenden Beispiel wird nun versucht, eine Funktion zu schreiben, die die Werte ihrer zwei
Parameter gegeneinander austauscht. Dieses kann nicht mit Hilfe von Return-Werten realisiert
werden:
Programmbeispiel:
#include <stdio.h>
#include <stdlib.h>
void swap(int i, int j);
main () {
int i = 1, j = 10; /* Variablen sofort initialisieren */
printf("1 -> i = %d, j = %d\n", i, j)
swap(i, j)
printf("3 -> i = %d, j = %d\n", i, j);
} /* Ende main */
void swap(int i, int j) { /* Funktion zum Austauschen */
int c = i; /* Variable c sofort initialisieren */
i = j;
j = c;
printf("2 -> i = %d, j = %d\n", i, j);
} /* Ende swap */
Zum Austauschen des Inhaltes der beiden Parameter innerhalb der Funktion swap wird der
"Parkplatzalgorithmus" verwendet:
Es wird wie beim Tauschen der Parkplätze zweier Autos verfahren:
Zeiger als Übergabeparameter
Stand: 25.06.04
2
Die Ausgabe des Programms ist:
1 -> i = 1, j = 10
2 -> i = 10, j = 1
3 -> i = 1, j = 10
Der Tauschalgorithmus in swap hat den Inhalt der Variablen korrekt vertauscht, aber die Änderung
war nur lokal innerhalb dieser Funktion. An die aufrufende Funktion ist keine Information über
diese Änderung weitergegeben worden. Der Grund hierfür wird bei näherer Betrachtung des
Übergabemechanismusses von Parametern in C deutlich.
Im RAM (Random Access Memory Speicher
mit wahlfreien Zugriff) wird bei jedem
Programmstart ein Bereich eingerichtet, den
man "Stack" nennt. Auf diesem werden unter
anderem die lokalen Variablen abgelegt. Die
Funktion main hat ihre eigenen privaten Daten,
ebenso swap. Bei der Übergabe von Parametern
von der Funktion main an die Funktion swap
werden die Variablen ...

Du möchtest das komplette Referat lesen?

Gib einfach deine E-Mail-Adresse ein, damit wir das komplette Referat kostenlos als PDF zur Verfügung stellen können! Du kannst es dann bearbeiten und ausdrucken.

* Pflichtangaben