INTRODUCCION A LA PROGRAMACION (C.U.

Anuncio
UNIDAD 4
Tipos de Datos Estructurados
y Cadenas
Tipos de datos: punteros
UNIDAD 4
Variables y Direcciones
Recordemos: al declarar una variable, le asociamos: nombre,
tipo de datos y dirección en memoria.
RAM
0
1
10
11
100
101
110
111
1000
1001
1010
1011
n=1100
1101
1110
10001
10010
10011
75
1111
10000
UNIDAD 4
Variables y Direcciones
Muestra la dirección
UNIDAD 4
Puntero: Concepto
Variable que «apunta» a otra variable.
almacena la dirección de memoria de otra variable
UNIDAD 4
Puntero: Declaración
tipoDato
Tipo de dato que se
almacena en la variable
apuntada
por
el
puntero.
*nombre;
Nombre de la variable
de tipo puntero
Punteros. Declaración
UNIDAD 4
Puntero: Declaración
Ejemplo:
variable de tipo puntero, que
apunta a otra variable de tipo
entero.
Le indicamos al compilador que
reserve una posición de memoria
para guardar la dirección de una
variable (del tipo indicado)
UNIDAD 4
Puntero: Operadores
&: Obtiene la dirección de
memoria de una variable.
Operadores
* : Devuelve el contenido de la
variable apuntada.
UNIDAD 4
Punteros Especiales
VOID: Puede apuntar a cualquier tipo
de dato.
NULL: No apunta a ninguna variable.
UNIDAD 4
Puntero: Inicialización
a) Inicialización en vacío
Es un error
no
inicializar el
puntero.
Se inicializa el puntero en vacío
Cadena de control
tipo puntero
UNIDAD 4
Puntero: Inicialización
b) Inicialización con la dirección de una variable
Ejemplo 1
p y s, son punteros que apuntan a
una variable de tipo carácter.
Se pueden asignar
direcciones entre punteros.
A lo que apunta s, o sea a car1.
Ejemplo 2
Inicialización del puntero.
RAM
0
1
101
110
1010
1011
10
111
n=1100= *p
1100
P= 11
100
1000
1001
1101
1110
10010
10011
75
1111
10000
10001
UNIDAD 4
Puntero: Asignación
No es posible
hacer
la
asignación sin
antes
haber
almacenado en
el puntero una
dirección
de
variable.
Se almacena en p la dirección de car 2
A lo que apunta p, o sea car2, se le asigna ‘z’
UNIDAD 4
Puntero: Asignación
UNIDAD 4
Punteros y Vectores
Un nombre de array es un puntero: Contiene la dirección de la
primera celda de memoria asignada al vector.
Desplazamiento
respecto del inicio
RAM
0
1
11
v=10
100
111
101
110
1010
1011
1100
1101
1110
10000
10001
10010
10011
1111
v[0]=111=*v+0
v[1]=1000=*v+1
v[2]=1001=*v+2
UNIDAD 4
Punteros y Vectores
Ejemplo 1:
Ejemplo 2:
UNIDAD 4
Punteros y Vectores
Punteros a estructuras
struct persona *ptr;
//se crea un puntero a una estructura
ptr = &empleado;
Continuamos con
ejercicios 1 a 3 del tp5
Descargar