Anda di halaman 1dari 6

Pseudocdigo

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

PUNTERO O APUNTADOR (POINTER)


Un puntero es una variable que tiene la direccin
de memoria de otra variable (la que contiene un
valor).

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.

El identificador cont hace


referencia directa a la variable
cuyo valor es 23.
El identificador punt hace
referencia indirecta a la
variable (cont) cuyo valor es
23.
4

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

OPERACIONES CON PUNTEROS


Se pueden incrementar o disminuir punteros. Por
ejemplo: si y es puntero a un Real con la direccin
actual 3500.
Despus de la expresin: yy+1, la direccin de y
ser 3504 y no 3501.

Cada vez que se incrementa y, la computadora 8

apuntar al siguiente flotante, que usa cuatro bytes.

OPERACIONES CON PUNTEROS


Se puede usar un puntero en la parte derecha de
una sentencia de asignacin para asignar el valor
del puntero a otro puntero. Ejemplo:
Entero t, *x, *y
t 450 x &t y x
No se puede multiplicar o dividir punteros, no se
puede sumar o restar dos punteros y no se puede
sumar o restar los tipos reales a punteros.

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

GESTIN DE MEMORIA DINMICA


Hay ocasiones en las que no sabemos cunta
memoria vamos a necesitar hasta que no se
ejecuta el programa.
Los lenguajes (C++) permiten poder reservar
memoria segn se va necesitando, es decir, en
tiempo de ejecucin.
Ventaja de utilizar memoria dinmica:
Los programas aprovecharn mejor la memoria del
ordenador en el que se ejecuten, usando slo lo
necesario.

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;

Entero *pNULL int *p=NULL;


pnew Entero p=new int;
.
12

4
OPERADOR DELETE
delete permite liberar memoria si ya no se
necesita.
delete identificadorPuntero
En C++ delete identificadorPuntero;

Entero *pNULL int *p=NULL;


pnew Entero p=new int;
delete p delete p;

13

EJEMPLO 1

Entero nota
Entero *p
leer(nota)
p&nota
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.

Anda mungkin juga menyukai