Puntero o apuntador
1
AGENDA
Pseudocdigo
Puntero
Declaracin
Operadores
Operaciones con punteros
Punteros a punteros
Gestin de memoria dinmica
Operador new y delete
Ejemplo 1
Ejemplo 2
Ejercicios
1
PUNTERO O APUNTADOR (POINTER)
Si una variable contiene la direccin de otra
variable entonces se dice que: la primera variable
apunta a la segunda.
DECLARACIN
Sintaxis : tipo *identificador
Declara si una variable contiene una direccin de
memoria. Donde tipo puede ser cualquier tipo base,
y ste define a que tipo de variable puede apuntar el
puntero.
Ejemplo : Entero *punt, k
Esta sentencia declara que punt apunta a un valor u
objeto de tipo entero. Al declarar una variable como
puntero, debe ir precedida por un *.
Los punteros se deben inicializar a 0, NULL o a una
direccin, al declararlos o mediante una asignacin. 5
OPERADORES
& : Operador de direccin, devuelve la direccin
de memoria de su operando (variable a la que
precede).
punt &cont
Coloca la direccin de memoria 3500 de la variable
cont en punt y la variable puntero punt est ubicada
en la direccin 4000. Se lee que punt recibe la
direccin del valor cont o punt apunta a 6
cont.
2
OPERADORES
* : Operador de indireccin, es el complemento
de &, devuelve el valor de la variable situada en la
direccin que sigue (sinnimo de la variable hacia
el que apunta su operando).
valt *punt
Si punt contiene la direccin de memoria de la
variable cont, entonces coloca el valor de cont en
valt.
Se lee como valt recibe el valor contenido en la
variable apuntada por punt (en ejemplo anterior
es cont).
7
3
PUNTEROS A PUNTEROS
Sintaxis : tipo **identificador
Declara un puntero a un puntero, es decir efecta
un direccionamiento indirecto mltiple o una
cadena de punteros.
Ejemplo : Real **dobleDir
Esta declaracin le dice al compilador que dobleDir
es un puntero a un puntero tipo Real, y que no es
un puntero a un nmero en punto flotante.
10
11
OPERADOR NEW
Por ejemplo en C++ hay 2 operadores para la
gestin de memoria:
new permite reservar memoria cuando se
requiere y devuelve la direccin de inicio.
identificadorPuntero new tipo
En C++ identificadorPuntero = new tipo;
4
OPERADOR DELETE
delete permite liberar memoria si ya no se
necesita.
delete identificadorPuntero
En C++ delete identificadorPuntero;
13
EJEMPLO 1
Entero nota
Entero *p
leer(nota)
p¬a
escribir(*p)
14
EJEMPLO 2
Entero *p
pnew Entero
leer(*p)
escribir(*p)
delete p
15
5
EJERCICIOS
Escriba pseudocdigo que permita ingresar 2
nmeros, luego debe sumarlos y finalmente
mostrarlos.
Desarrolle la solucin de dos formas
Usando punteros y variables
Usando new y delete
16
RESMEN
Un puntero es una variable que puede almacenar
una direccin de memoria.
El operador de direccin &, se utiliza para obtener
la direccin de memoria de una variable.
El smbolo * se utiliza para declarar una variable de
tipo puntero.
El operador de indireccin * se utiliza para acceder
al valor apuntado por un puntero. Se llama de
indireccin, porque se accede de manera indirecta
al valor almacenado en una direccin de memoria.
Para gestionar memoria de forma dinmica se
17
usar new y delete.