Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cuando C pasa argumentos a funciones, los pasa por valor, es decir, si el parmetro es
modificado dentro de la funcin, una vez que termina la funcin el valor pasado de la variable
permanece inalterado.
Hay muchos casos que se quiere alterar el argumento pasado a la funcin y recibir el nuevo
valor una vez que la funcin ha terminado. Para hacer lo anterior se debe usar una llamada
por referencia, en C se puede simular pasando un puntero al argumento. Con esto se provoca
que la computadora pase la direccin del argumento a la funcin.
Para entender mejor lo anterior consideremos la funcin swap() que intercambia el valor de
dos argumentos enteros:
void swap(int *px, int *py);
main()
{
int x, y;
x = 10;
y = 20;
printf("x=%d\ty=%d\n",x,y);
swap(&x, &y);
printf("x=%d\ty=%d\n",x,y);
}
void swap(int *px, int *py)
{
int temp;
temp = *px; /* guarda el valor de la direccion x */
*px = *py; /* pone y en x */
*py = temp; /* pone x en y */
APUNTADORES Y ARREGLOS:
Existe una estrecha relacin entre apuntadores y arreglos, tanto que pueden ser usados en
forma casi indistinta. En C, un nombre de un arreglo es un ndice a la direccin de comienzo
del arreglo. En esencia, el nombre de un arreglo es un puntero al arreglo.
Una variable de tipo arreglo puede considerarse como un apuntadora tipo del arreglo.
Los apuntadores pueden ser utilizados en cualquier operacin que involucre subndices de
arreglos.
Ejemplo:
main()
{
int tabla[10],i,x,*pt,*ptr;
pt = &tabla[0];
x = *pt;
for (i=0; i!10; i++)
*(pt+i) = random();
ptr = tabla;
for (i=0; i!10; i++)
printf(''%d nn'',*(ptr+i),tabla[i]);
}