Академический Документы
Профессиональный Документы
Культура Документы
PRESENTACION:
RESUMEN
Elaborado por:
ISRAEL MONROY ALVAREZ
El apuntador, en el teatro, la revista y la ópera es la persona que asiste u orienta a los actores cuando han
olvidado su texto o no se mueven correctamente sobre el escenario.
Termino en Programacion:
Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de
memoria de otra variable.
**No hay que confundir una dirección de memoria con el contenido de esa dirección de memoria.
Una variable en un programa es algo con un nombre, que contiene un valor que puede variar. El modo en
que el compilador y el enlazador (linker) manejan esto es que asignan un bloque específico de la memoria
dentro de la computadora para guardar el valor de una variable. El tamaño de este bloque depende del
rango en que a esta variable le es permitido variar.
Cuando declaramos una variable le informamos al compilador 2 cosas, el nombre de la variable y el tipo
de la variable.
<tipo> * <variable>
1. Los apuntadores como cualquier otra variable deben de ser declarados antes de que puedan
ser utilizados.
2. El tipo de un apuntador lo proporciona implícitamente el tipo de la variable a la que apunta.
3. Los apuntadores pueden ser declarados para apuntar a objetos de cualquier clase
Una variable apuntador se declara como todas las variables. Debe ser del mismo tipo que la variable
apuntada. Su identificador va precedido de un asterisco (*):
El tipo de dato del apuntador debe coincidir con el de la variable cuya posición en memoria apuntan. En
el ejemplo vemos que tanto variable como apuntador son enteros.
• Siempre que queremos usar el apuntador debemos anteponer el asterisco (*) para indicar que
usaremos el valor en la posición de memoria apuntada.
• De no usar el asterisco el comportamiento sería impredecible. Estaremos haciendo uso de la
dirección de memoria más no del valor almacenado en ésta.
• Después de usar un puntero, especialmente si trabajamos con arreglos o matrices, es MUY
recomendable liberar la memoria utilizada con la función delete (tal como en el ejemplo)
• Un puntero o apuntador puede ser de cualquier tipo de dato, inclusive los podemos usar con
tipos complejos.
Es decir: hay tantos tipos de APUNTADORES como tipos de datos, aunque también pueden declararse
APUNTADORES a estructuras más complejas (funciones, struct, objetos (instancias de una clase), ficheros
e incluso APUNTADORES vacíos (void) y APUNTADORES nulos (NULL).
Declaración de punteros .
En general, dado un Tipo atómico, los punteros de ese tipo se declaran en la forma
Tipo * puntero_de_tipo;
esto es: basta intercalar un asterisco entre el nombre del tipo y el nombre de la variable
para hacer que la variable declarada sea un puntero de algun objeto del tipo Tipo .
Punteros no iniciados .
En el momento de su declaración, el puntero contiene un valor que no está definido, y no es otro que la
trama de bits que haya en memoria en la zona reservada para el puntero por el compilador. Esta trama
es ciertamente aleatoria e imprevisible, y puede muy bien ser la dirección de una zona de memoria
perteneciente a la aplicación, o más probablemente se tratará de una zona de memoria no perteneciente
a aplicación. Si interpretamos la (¡inexistente¡) variable señalada por el puntero, el valor obtenido es
impredecible, y lo más probable es que su codificación no se ajuste al tipo de variable asociado al puntero.
Antes de emplear un puntero para obtener el valor de una variable o para dar valor a la variable señalada
por el puntero, es imprescindible almacenar en el puntero la dirección de la zona de memoria deseada.
La constante NULL .
Como medida preventiva, el lenguaje C ofrece una constante que denota el puntero nulo, esto
es, una dirección tal que todo intento de acceder a la variable que comienza en esta dirección
(tanto para leer como para escribir) se detecta y supone la parada inmediata del programa. Esta
constante se denomina NULL .
Operador &
El operador & proporciona la dirección de su operando, esto es, del objeto que se le proporciona
como argumento. En general, su aplicación tendrá la forma siguiente:
El resultado sería