Professional Documents
Culture Documents
Veamos esto con un ejemplo simple en que tenemos la siguiente funcin void que intercambia
los valores de dos enteros x e y:
Declaramos dos variables de tipo int en el main, mostramos sus valores, llamamos a la funcin
y volvemos a mostrarlos de la siguiente manera:
Y veramos en pantalla:
Donde vemos que, en efecto no se modificaron los valores. Pero agreguemos un printf al final
de la funcin para ver si se haban modificado o no los valores:
Y obtenemos:
Donde vemos que, en efecto se modificaron los valores de x e y dentro de la funcin pero que
no se modificaron las variables originales ya que al hacer el pasaje por valor se trabaja con la
copia de las mismas.
En el pasaje por referencia se pasa a la funcin las direcciones de memoria de las variables en
cuestin en lugar de su valor. A diferencia del paso por valor, aqu no se realizan copias de las
variables sino que se trabaja sobre la direccin de memoria que pasamos, lo que nos permite
modificar el valor de la variable en cuestin.
Veamos esto con el mismo ejemplo que usamos antes, pero usando punteros:
Luego hacemos el llamado a la funcin de la misma manera, pero pasando las direcciones de
memoria de x e y:
Espero que les sea til la explicacin y ya nos veremos en la prxima entrada donde
seguiremos viendo ms temas de C.
#include <iostream>
int main(void)
{
int a = 2,b = 3;
cout<<"Valores originales a = "<<a<<" y b = "<<b<<endl<<endl;
intercambiar(a,b); //Llmado a la funcin intercambiar
cout<<"Luego de la funcion a = "<<a<<" y b = "<<b<<endl<<endl;
return 0;
}