En las funciones juegan un papel muy importe las
variables, estas pueden ser locales o globales.
Variables Globales: Estas se crean durante toda la
ejecución del programa, y son globales, ya que pueden ser llamadas, leídas,
modificadas, etc; desde cualquier función. Se definen antes del main().
Variables Locales: Estas, pueden ser utilizadas
únicamente en la función que hayan sido declaradas.
PARÁMETROS
Los subprogramas se comunican con el programa principal,
que es el que contiene a las funciones, mediante parámetros, que estos pueden
ser: Parámetros Formales y Parámetros Actuales.
Los
argumentos que aparecen en la llamada a la función se denominan parámetros actuales, mientras que los parámetros formales son los que aparecen en la primera línea
de definición de la función. En una llamada normal a una función, habrá un
argumento actual por cada argumento formal. Los parámetros actuales pueden ser
constantes, variables simples, o expresiones más complejas. No obstante, cada
argumento actual debe ser del mismo tipo de datos que el parámetro formal
correspondiente.
Paso de Parámetros: Existen dos formas de pasar parámetros, las cuales son:
Paso por Valor
También conocido como parámetros valor. Los valores se
proporcionan en el orden de cálculos de entrada. Los parámetros se tratan como
variables locales y los valores iniciales se proporcionan copiando los valores
de correspondientes argumentos.
Los parámetros formales-Locales de una función reciben
como iniciales los valores de los parámetros actuales y con ellos se ejecutan
las acciones descritas en el subprograma.
Ejemplo:
A=5;
B=7;
C=proc1(A,
18, B*3+4);
Proc1(X, Y,
Z)
Explicación:
Donde, se encuentra c, se está llamando la función,
denominada proc1, en la cual se están enviando como parámetros el valor de A,
que es cinco; el cual es recibido por la variable X, en la definición de la
función proc1; en la misma función, Y tendrá el valor de 18; porque ese es el
valor del parámetro formal, mientras que Z, tendrá un valor inicial de 25, ya
que ese es el resultado del tercer parámetro que resulta ser una expresión
aritmética.
Paso por referencia
Si queremos que los cambios realizados en los parámetros
dentro de la función se conserven al retornar de la llamada, deberemos pasarlos
por referencia. Esto se hace declarando los parámetros de la función como
referencias a objetos.
El paso por referencia se hace utilizando apuntadores. Se
envía la dirección de memoria de la variable, por lo tanto los cambios que haga
la función si afectan el valor de la variable.
Ejemplo:
#include
<stdio.h>
void
sumar_referencia(int *numero); // declaración de la función //
int
main(void)
{
int numero = 57; //definimos
numero con valor de 57//
sumar_referencia(&numero);
// enviamos numero a la función //
printf("\nValor de numero
dentro de main() es: %d ", numero);
// podemos notar que el valor de
numero se modifica y que ahora dentro de main() también se ha
modificado aunque la función no haya retornado ningún
valor.//
return 0;
}
void
sumar_referencia(int *numero)
{
*numero += 1; //le sumamos 1 al
número//
//el valor de numero recibido
se aumenta en 1 y se modifica dentro de la función//
printf("\nValor de numero
dentro sumar_referencia() es: %d", *numero);
return;
}
No hay comentarios:
Publicar un comentario