martes, 7 de agosto de 2018

VARIABLES EN LAS FUNCIONES


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