Vediamo un altro esempio. Il seguente esempio usa una funzione denominata quadrato che scrive il quadrato dei numeri fra 1 e 10.
#include <stdio.h>
int square(int x); /* Function prototype */
int main()
{
int counter;
for (counter=1; counter<=10; counter++)
printf("Square of %d is %d\n", counter, square(counter));
return 0;
}
/* Define the function 'square' */
int square(int x)
{
return x * x;
}
L'uscita di questo programma sarà visualizzata come segue:
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 |
Il quadrato del prototipo di funzione dichiara una funzione che prende un parametro di numero intero e restituisce un numero intero. Quando il compilatore raggiunge la chiamata di funzione al quadrato nel programma principale, può da controllare la chiamata di funzione contro la definizione della funzione.
Quando il programma raggiunge la linea che denomina il quadrato di funzione, il programma salta alla funzione ed esegue quella funzione prima della ripresa del relativo percorso con il programma principale. I programmi che non hanno un tipo di ritorno dovrebbero essere dichiarati usando il vuoto. Così i parametri alla funzione possono essere passaggio da Value o passaggio da Reference.
Una funzione ricorsiva è una funzione che si denomina. E questo processo è denominato ricorrenza.
Passare da Value Functions
I parametri della funzione quadrata nell'esempio precedente sono passati da valore. Ciò significa che soltanto una copia della variabile è stata passata alla funzione. Alcuni cambiamenti al valore non saranno riflessi di nuovo alla funzione di chiamata.
Il seguente esempio usa il pass-da-valore e cambia il valore del parametro passato, che non ha effetto sulla funzione di chiamata. Il count_down di funzione è stato vuoto così dichiarato come non ci è tipo di ritorno.
#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');
}
L'uscita del programma sarà visualizzata come segue:
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 |
|