Академический Документы
Профессиональный Документы
Культура Документы
Puntero o apuntador
1
AGENDA
Pseudocódigo
Puntero
Declaración
Operadores
Operaciones con punteros
Punteros a punteros
Gestión de memoria dinámica
Operador new y delete
Ejemplo 1
Ejemplo 2
Ejercicios
1
PUNTERO O APUNTADOR (POINTER)
Si una variable contiene la dirección de otra
variable entonces se dice que: “la primera variable
apunta a la segunda”.
DECLARACIÓN
Sintaxis : tipo *identificador
Declara si una variable contiene una dirección 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
dirección, al declararlos o mediante una asignación. 5
OPERADORES
& : Operador de dirección, devuelve la dirección
de memoria de su operando (variable a la que
precede).
punt &cont
Coloca la dirección de memoria 3500 de la variable
cont en punt y la variable puntero punt está ubicada
en la dirección 4000. Se lee que “punt recibe la
dirección del valor cont” o “punt apunta a 6
cont”.
2
OPERADORES
* : Operador de indirección, es el complemento
de &, devuelve el valor de la variable situada en la
dirección que sigue (sinónimo de la variable hacia
el que apunta su operando).
valt *punt
Si punt contiene la dirección 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 efectúa
un direccionamiento indirecto múltiple o una
cadena de punteros.
Ejemplo : Real **dobleDir
Esta declaración le dice al compilador que dobleDir
es un puntero a un puntero tipo Real, y que no es
un puntero a un número en punto flotante.
10
11
OPERADOR NEW
Por ejemplo en C++ hay 2 operadores para la
gestión de memoria:
new permite reservar memoria cuando se
requiere y devuelve la dirección 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 pseudocódigo que permita ingresar 2
números, luego debe sumarlos y finalmente
mostrarlos.
Desarrolle la solución de dos formas
Usando punteros y variables
Usando new y delete
16
RESÚMEN
Un puntero es una variable que puede almacenar
una dirección de memoria.
El operador de dirección &, se utiliza para obtener
la dirección de memoria de una variable.
El símbolo * se utiliza para declarar una variable de
tipo puntero.
El operador de indirección * se utiliza para acceder
al valor apuntado por un puntero. Se llama de
indirección, porque se accede de manera indirecta
al valor almacenado en una dirección de memoria.
Para gestionar memoria de forma dinámica se
17
usará new y delete.