martes, 27 de mayo de 2014

Funciones & Parámetros por valor y referencia

Las funciones son bloques constructores  de C y el lugar donde se da toda la actividad del programa. 
Son una de las características mas importantes de C. 
Son procesos que reciben valores de entrada y a partir de ellos se producen valores para una salida. 

Forma General de una Función

La forma general de una función es: 

     especificador_de_tipo_de_nombre_de_la_función  (lista_de_parámetros)
    {
       cuerpo de la función 
       secuencia de instrucciones
    }

El especificador_de_tipo especifica el tipo de valor que devuelve la sentencia "return" de la función. Si no se especifica ningún tipo, el compilador asume que la función devuelve como resultado un entero. 
La lista_de_parámetros es la lista de nombres de variable separados por comas con sus tipos asociados que reciben los valores de los argumentos cuando se llama a la función. Una función puede no tener parámetros en cuyo caso la lista de parámetros esta vacía, pero aun así, los paréntesis son necesarios. 

En las declaraciones de variables se pueden declarar múltiples variables del mismo tipo mediante una lista con los nombres de las variables separados por comas y se debe incluir tanto el tipo como el nombre de la variable. 


La definición de una función está compuesta de 
dos partes: 


              – Encabezado de la función. 
    – Cuerpo de la función

En el encabezado se define: 

  • El tipo del valor resultante de la función. 
  • El nombre de la función 
  • Los parámetros de la función. 

PARÁMETROS DE UNA FUNCIÓN 

La cantidad de variables que se definan en la lista de parámetros dependerá de los valores de entrada que necesite la función. 
Si requiere 5 datos de entrada, tendrá 5 variables. Si no requiere de valores de entrada, entonces la lista será vacía, (paréntesis vacíos). 
Las variables definidas en la lista de parámetros sólo podrán ser utilizadas en el cuerpo de la función. Una vez que la función haya terminado de hacer sus cálculos y haya regresado el resultado, las variables de los parámetros son desechadas.


CUERPO DE LA FUNCIÓN 

El cuerpo de la función es una lista de instrucciones de C encerradas entre llaves ({ }). Esta lista de instrucciones define el proceso que la función debe llevar a cabo. 
Para indicar el resultado de la función se utiliza la palabra return, seguida de la expresión que calcula el valor resultante. 
Debes notar que la manera como el cuerpo de la función hace referencia a los valores de entrada es a través de las variables de los parámetros. 



La sentencia Return 

La sentencia return tiene dos usos importantes. Primero, fuerza una salida inmediata de la función en que se encuentra, es decir, hace que la ejecución del programa vuelva al código que llamo la función. En segundo lugar, se puede utilizar para devolver un valor 

Vuelta de una función 
Hay dos formas en las que una función puede terminar su ejecución y volver al sitio en que se llamo. La primera ocurre cuando se ha ejecutado la ultima sentencia de la función y, conceptualmente, se encuentra la llave } del final de la función. 
La mayoría de las funciones emplean la sentencia return para terminar la ejecución, bien porque se tiene que devolver un valor o bien para simplificar y hacer el código mas eficiente.



Lo que devuelve la función main ()

De acuerdo con el standard ANSI, la función main() devuelve un entero al proceso de la llamada, que generalmente es el sistema operativo. Cuando main() devuelve un valor es lo mismo que cuando se llama a exit() con ese mismo valor.




Parámetros por valor y referencia


En el lenguaje de programación C, existen parámetros por Valor y parámetros por Referencia. Cuando C pasa parámetros a funciones, los pasa, por default, por valor, es decir, si el parámetro es modificado dentro de la función, una vez que termina la función el valor pasado de la variable permanece inalterado. 
Pero en la mayoría de los programas es necesario que el nuevo valor que reciba alguna variable en la ejecución de la función donde se encuentra sea utilizado en todo el programa. 
Para lograr esto, es preciso utilizar los Parámetros por Referencia o Llamadas por Referencia, donde se simula pasar un apuntador al argumento, provocando que el compilador pase la dirección del argumento a la función principal. 

Reglas

Por referencia 
  • 1. En la llamada se emplea un & 
  • 2. En la declaración se recibe con un * 
Para entender mejor lo anterior consideremos la función swap() que intercambia el valor de dos argumentos enteros 

No hay comentarios:

Publicar un comentario