Vous êtes sur la page 1sur 2

Paso de Parmetros[editar]

Las funciones pueden recibir datos como lo hemos observado, pero existen dos formas de enviar los datos hacia una funcin por valor ypor referencia, las cuales modifican en diferente forma el comportamiento de el programa.

Por Valor[editar]
El paso por valor enva una copia de los parmetros a la funcin por lo tanto los cambios que se hagan en ella no son tomados en cuenta dentro de la funcin main(). Ejemplo:

Por Referencia[editar]
El paso por referencia se hace utilizando apuntadores. Se enva la direccin de memoria de la variable, por lo tanto los cambios que haga la funcin si afectan el valor de la variable. Ejemplo:

Estructura de una funcin: Lista de parmetros Paso de parmetros por valor -Cuando se llama a la funcin se pasa solo el valor de la variable Cuando se llama a la funcin, se pasa solo el valor de la variable. - Este mtodo tambin se llama paso por copia. - El compilador hace una copia de los parmetros. Esto implica que cualquier modificacin en el valor de los parmetros no se mantiene cuando termina la funcin. - Utilizaremos este mtodo cuando no necesitemos que se Utilizaremos este mtodo cuando no necesitemos que se modifiquen los parmetros con los que se llama. Todos los ejemplos que hemos visto hasta ahora utilizan parmetros Todoslos ejemplos que hemos visto hasta ahora, utilizan parmetros por valor. 23 Programacin modular. Funciones Yolanda Garca Ruiz 2009/2010Estructura de una funcin: Lista de parmetros P d t f i Paso de parmetros por referencia - Tambin se llama paso por direccin.

- Cuando se llama a la funcin, se pasa la direccin de memoria donde se encuentra almacenada la variable parmetro. - El compilador no hace copia, no reserva memoria para los El compilador no hace copia, no reserva memoria para los parmetros. - Usaremos este mtodo cuando necesitamos que la funcin modifi l l d l t d l l l difi d difique el valor de los parmetros y que devuelva el valor modificado.

Paso de parmetros por referencia. El paso de parmetros en C est construido de tal modo que los valores resultantes de evaluar los parmetros formales se copian en los parmetros formales. Como los parmetros formales son variables distintas de los parmetros reales, los cambios efectuados en los parmetros foramales no afectan para nada a los parmetros reales. Esto es cierto e insalvable, pero disponemos de un auxiliar sumamente interesante: los punteros. En efecto, considrese el siguiente fragmento de cdigo: int p; int * q = &p; *q = 33;

Vous aimerez peut-être aussi