Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/02/2010, 13:49
Avatar de fradve
fradve
 
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 7
Respuesta: Paso de valores entre funciones

Hay dos maneras de pasar parámetros a una función:

1. Por Valor: aqui lo único que hacemos es pasar los valores de las variables, es decir que así las modifiquemos el valor de ellas dentro de la función este no cambia el valor original de la variable, sino solo a nivel local es decir mientra permanezcamos dentro de la función, ejemplo:


Código C++:
Ver original
  1. void main()
  2. {
  3.    int a=1,b=2,c=3;
  4.  
  5.    escribir(a,b,c);
  6.  
  7.    printf("%d",a); //te darás cuenta que el cambio que le dimos dentro la
  8.                            //función no surte efecto al valor original
  9. }
  10.  
  11. void escribir(int a,int b,int c)
  12. {
  13.    printf("%d\n",a);
  14.    printf("%d\n",b);
  15.    printf("%d\n",c);
  16.    
  17.    a=4;
  18.    printf("%d\n",a); //cambia el valor de a pero solo a nivel local
  19.                               //es decir dentro de la función ya que la variable a
  20.                               //en este momento es considerada variable local de
  21.                               //la función escribir
  22. }

2. Por Referencia: aquí en cambio se pasa la referencia a memoria de la variable enviada como parámetro, es decir, que sin modificamos su valor dentro de la función llamada modificamos el valor de la variable pasa como parámetro. y es el ejemplo de tu función leer, ejemplo:


Código C++:
Ver original
  1. void main()
  2. {
  3.    int a=1,b=2,c=3;
  4.  
  5.    printf("%d",a); //Valor de a = 1
  6.  
  7.    leer(&a,&b,&c); //usamos los & para indicarle la referencia a memoria de
  8.                             // la variable, es decir que le estamos enviando parámetros por
  9.                             //referencia
  10.  
  11.    printf("%d",a); //Valor de a ingresado dentro de la función escribir
  12. }
  13.  
  14. void leer(int *a,int *b,int *c) //de igual manera con el * le indicamos que lo
  15. {                                                 //que vamos a recibir es una referencia a  
  16.    scanf("%d\n",a);                     //memoria del parámetro recibido
  17.    scanf("%d\n",b);
  18.    scanf("%d\n",c);
  19. }
__________________
En programación hay mil y un formas de hacer lo mismo...

Última edición por fradve; 08/02/2010 a las 14:09