OK, espero que hasta donde llevamos se vaya entendiendo todo bien, si no, pues no duden en preguntar, ahora vamos a empezar a meternos con temas un poco mas complejos (o al menos para mi fueron complejos) por lo que tratare de dar un ejemplo por lo menos pero que sea claro y no tratar de llenarlos de ejemplos que tal vez los puedan confundir mas. Recuerden que en la Internet pueden encontrar muchos mas ejemplos de los temas que estamos tratando, y por ello es indispensable que se entienda bien el ejemplo mas básico por que de él parten los demás.
Bueno revisando mis sagradas notas sobre apuntadores, jaja, me parecio correcto ponerles lo que mi profesor nos dio de definición por que creo que se entiende bastante bien, asi que aquí va:
“Los apuntadores son variables que almacenan direcciones de memoria. En general una variable contiene un valor de cualquier tipo con el que se declara la variable, sin embargo, un apuntador contendrá la dirección en la memoria de la variable que contiene un determinado valor. Esto significa que de manera indirecta un apuntador refiere a un valor, en tanto que una variable refiere directamente a un valor.”
Resalte la ultima parte porque me parece que lo resume todo, un apuntador, APUNTA, a una dirección de memoria que contiene un cierto valor.
La declaración para los punteros es la siguiente:
[tipo de dato] *[nombre de la variable puntero];
Como puedes ver su declaración es casi idéntica a la de una variable normal, solo que agregamos el asterisco (*) y con ello indicamos que es un apuntador o puntero, no olvides este asterisco al declararlos.
Ahora para poder asignarle la dirección de memoria donde se encuentra un cierto valor, se utiliza el operador & tampoco olvides esto.
Muy bien ahora veamos el ejemplo mas sencillo para entender los apuntadores y lo explicamos al final, OK.
Ejemplo Nº 31
#include <stdio.h>
int x,y;
int *apuntador;
int main()
{
printf("Programa para ilustrar
printf("Le asignamos a X el valor de 10\n");
printf("Y se lo pasaremos a Y por medio de un apuntador\n\n");
x=10; //Le asignamos un valor a la variable X.
apuntador=&x; //Le asignamos la direccion de memoria donde esta el valor de X.
y=*apuntador; //Le damos a Y el valor de la direccion donde apunta el puntero.
printf("X=%d Y=%d\n\n",x,y); //Imprimimos los dos valores de X y de Y.
system("PAUSE");
return 0;
}
Fíjate como le hemos pasado el valor del apuntador a una variable llamada “y”, que realmente lo que le estamos diciendo es, que tome el valor contenido en una cierta dirección de memoria, que viene siendo el valor de “x”.
Cuida que tanto el tipo de la variable a la que le vas a pasar algún valor, como el tipo del apuntador, sean compatibles, esto es del mismo tipo.










