Benennen-durch-Hinweis
Einen Funktion Benennen-durchhinweis, anstatt die Variable selbst zu führen zu bilden, führen die Adresse der Variable. Die Adresse der Variable kann vom Verwenden u. vom Operator genommen werden. Die folgenden Anrufe eine Tauschenfunktion, welche die Adresse von Variablen anstelle von den tatsächlichen Werten führt.
swap(&x, &y);
Dereferenzieren
Das Problem, das wir ist haben jetzt, daß das Funktion Tauschen die Adresse anstatt die Variable geführt worden ist, also müssen wir die Variablen dereferenzieren, damit wir die tatsächlichen Werte anstatt die Adressen der Variablen betrachten, um sie auszutauschen.
Das Dereferenzieren wird in C erzielt, indem man die Darstellung des Zeigers (*) verwendet. In den einfachen Bezeichnungen bedeutet dieses die Plazierung von a * vor jedem, das bevor es es variabel ist, verwendet, so dass es den Wert der Variable anstatt auf seine Adresse sich bezieht. Das folgende Programm veranschaulicht Überschreiten-durchhinweis, um zwei Werte auszutauschen.
#include <stdio.h>
void swap(int *x, int *y);
int main()
{
int x=6, y=10;
printf("Before the function swap, x = %d and y =
%d\n\n", x, y);
swap(&x, &y);
printf("After the function swap, x = %d and y =
%d\n\n", x, y);
return 0;
}
void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
Uns den Ausgang des Programms sehen lassen:
Before the function swap, x = 6 and y = 10
After the function swap, x = 10 and y = 6 |
Funktionen können rekursiv sein, das eine Funktion kann sich benennen ist. Jeder Anruf zu sich erfordert, daß die gegenwärtige Lage der Funktion auf den Stapel gedrückt wird. Es ist wichtig, sich an diese Tatsache zu erinnern, da es einfach ist, einen Stapelüberlauf zu verursachen, d.h. hat der Stapel aus Raum heraus zum Platz mehr Daten laufen gelassen.
Das folgende Beispiel errechnet das Faktoren- einer Zahl mit Rekursion. Ein Faktoren- ist eine Zahl, die mit jeder anderen Ganzzahl unter sich, unten bis 1 multipliziert wird. Z.B. ist das Faktoren- der Nr. 6:
Factorial 6 = 6 * 5 * 4 * 3 * 2 * 1
Therefore the factorial of 6 is 720. It can be seen from the above example that factorial 6 = 6 * factorial 5. Similarly, factorial 5 = 5 * factorial 4, and so on.
Das folgende ist die allgemeine Richtlinie für die Berechnung von Faktoren- Zahlen.
factorial(n) = n * factorial(n-1)
Die oben genannte Richtlinie beendet, wenn n = 1, als das Faktoren- von 1 1 ist. Uns versuchen lassen, sie mit Hilfe des Beispiels besser zu verstehen:
#include <stdio.h>
long int factorial(int num);
int main()
{
int num;
long int f;
printf("Enter a number: ");
scanf("%d", &num);
f = factorial(num);
printf("factorial of %d is %ld\n", num, f);
return 0;
}
long int factorial(int num)
{
if (num == 1)
return 1;
else
return num * factorial(num-1);
}
Uns den Ausgang der Durchführung dieses Programms sehen lassen:
Enter a number: 7
factorial of 7 is 5040 |
|