Veamos otro ejemplo. El ejemplo siguiente utiliza una función llamada el cuadrado que escribe el cuadrado de los números entre 1 y 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;
}
La salida de este programa será exhibida como sigue:
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 |
El cuadrado del prototipo de la función declara una función que tome un parámetro del número entero y vuelva un número entero. Cuando el recopilador alcanza la llamada de función al cuadrado en el programa principal, puede comprobar la llamada de función contra la definición de la función.
Cuando el programa alcanza la línea que llama el cuadrado de la función, el programa salta a la función y ejecuta esa función antes de reasumir su trayectoria con el programa principal. Los programas que no tienen un tipo de vuelta se deben declarar usando vacío. Así los parámetros a la función pueden ser paso de Value o paso de Reference.
Una función recurrente es una función que se llama. Y este proceso se llama repetición.
Pasar por Value Functions
Los parámetros de la función cuadrada en el ejemplo anterior son pasados por el valor. Esto significa que solamente una copia de la variable se ha pasado a la función. Ninguna cambios al valor no serán reflejados de nuevo a la función que llama.
El ejemplo siguiente utiliza pasar-por-valor y cambia el valor del parámetro pasado, que no tiene ningún efecto en la función que llama. El count_down de la función ha sido tan declarado vacío como no hay tipo de vuelta.
#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');
}
La salida del programa será exhibida como sigue:
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 |
|