Zie een ander voorbeeld. Het volgende voorbeeld gebruikt een functie genoemd vierkant die het vierkant van de aantallen tussen 1 en 10 schrijft.
#include <stdio.h>
int square(int x); /* Het prototype van de functie */
int main()
{
int counter;
for (counter=1; counter<=10; counter++)
printf("Square of %d is %d\n", counter, square(counter));
return 0;
}
/* Bepaal de functie 'square' */
int square(int x)
{
return x * x;
}
De output van dit programma zal als volgt worden getoond:
Square of 1 is 1
Square of 2 is 4
Square of 3 is 9
Square of 4 is 16
Square of 5 is 25
Square of 6 is 36
Square of 7 is 49
Square of 8 is 64
Square of 9 is 81
Square of 10 is 100 |
Het vierkant van het functieprototype verklaart een functie die een geheelparameter neemt en een geheel terugkeert. Wanneer de compiler de functievraag aan vierkant in het belangrijkste programma bereikt, kan het de functievraag tegen de definitie van de functie controleren.
Wanneer het programma de lijn bereikt die het functievierkant oproept, springt het programma aan de functie en voert die functie uit alvorens zijn weg door het belangrijkste programma te hervatten. De programma's die geen terugkeertype hebben zouden gebruikend leegte moeten worden verklaard. Aldus kunnen de Parameters aan de functie Pas door Waarde of Pas zijn door Verwijzing.
Een Recursieve functie is een functie die zich roept. En dit proces wordt genoemd terugkeer.
Pas door de Functies van de Waarde
De parameters van de vierkante functie in het vorige voorbeeld worden overgegaan door waarde. Dit betekent dat slechts een exemplaar van de variabele is overgegaan tot de functie. Om het even welke veranderingen in de waarde zullen niet weerspiegeld worden terug naar de roepende functie.
De volgende pas-door-waarde en de veranderingen van het voorbeeldgebruik de waarde van de overgegaane parameter, die geen effect op de roepende functie heeft. De functie is count_down verklaard zo leegte aangezien er geen terugkeertype is.
#include <stdio.h>
void count_down(int x);
int main()
{
int counter;
for (counter=1; counter<=10; counter++)
count_down(counter);
return 0;
}
void count_down(int x)
{
int counter;
for (counter = x; counter > 0; counter--)
{
printf("%d ", x);
x--;
}
putchar('\n');
}
De output van het programma zal als volgt worden getoond:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1 |
|