Professional Documents
Culture Documents
y = 57;
py = &y;
// Antes de realizar el intercambio
printf("Los contenidos de las variables son: x = %d y y = %d\n", x, y);
// Realizamos el intercambio
aux = *px;
*px = *py;
*py = aux;
printf("Los contenidos de las variables son: x = %d y y = %d\n", x, y);
getch();
Los punteros pueden ser pasados como argumentos a una funcin, en cuyo caso, como parmetro actual
se enviar la direccin (o direcciones, si son varios) del operando a procesar dentro de la funcin; y por lo
tanto, el parmetro formal (ya que lo que se enva es una direccin), debe ser UN PUNTERO. Veamos en
el siguiente ejemplo, la misma tarea del punto anterior pero pasando parmetros por referencia- es
decir, enviando como parmetros las direcciones de x y de y.
// Paso de punteros a funciones
// Intercambio de los contenidos de dos variables
#include <stdio.h>
#include <conio.h>
void f_intercambio(int *px, int *py); // declaracin de la funcin f_intercambio( )
main()
{
int x, y;
x = 19;
y = 57;
// Impresion de los valores de x y y, ANTES de llamar a la funcion f_intercambio()
printf("\n ANTES DE LLAMAR A LA FUNCION...\n");
printf("Los contenidos de las variables son: x = %d y y = %d\n", x, y);
// Llamamos la funcion f_intercambio()
f_intercambio(&x, &y);
// Impresion de los valores de x y y, DESPUES de llamar a la funcion f_intercambio()
printf("\n DESPUES DE LLAMAR A LA FUNCION...\n");
printf("Los contenidos de las variables son: x = %d y y = %d\n", x, y);
getch();
}
void f_intercambio(int *px, int *py)
{
int aux;
aux = *px;
*px = *py;
*py = aux;
* Como se puede observar LOS CAMBIOS HECHOS SOBRE LAS VARIABLES EN LA FUNCION SE REFLEJAN EN
LA FUNCION PRINCIPAL main( ).
Con el objetivo de comparar el efecto que tiene el uso de los parmetros por referencia en una funcinse presenta el ejemplo inmediatamente anterior, pero aplicando el uso de parmetros por valor-.
// Paso de punteros a funciones
// Intercambio de los contenidos de dos variables
#include <stdio.h>
#include <conio.h>
void f_intercambio(int px, int py);
main()
{
int x, y;
x = 19;
y = 57;
// Impresion de los valores de x y y, ANTES de llamar a la funcion f_intercambio()
printf("\n ANTES DE LLAMAR A LA FUNCION...\n");
printf("Los contenidos de las variables son: x = %d y y = %d\n", x, y);
// Llamamos la funcion f_intercambio()
f_intercambio(x, y);
// Impresion de los valores de x y y, DESPUES de llamar a la funcion f_intercambio()
printf("\n DESPUES DE LLAMAR A LA FUNCION...\n");
printf("Los contenidos de las variables son: x = %d y y = %d\n", x, y);
}
getch();
** Saque sus propias conclusiones, una vez compile y ejecute los programas.