QT Capitulo 03
QT Capitulo 03
QT Capitulo 03
CAPITULO III
I. CONTENIDO
Temas Habilidades
Al finalizar el capítulo, el alumno podrá:
• Punteros • Aplicación de punteros
• Estructura de datos • Definir estructuras de datos
II. PUNTEROS
Los punteros son variables que se utilizan para almacenar direcciones de memoria que
fueron asignadas a variables en las que se almacenan datos de distinto tipo.
Cada uno de los espacios de memoria cuenta con una dirección para identificarlo, esta
dirección es por lo general un número en representación hexadecimal.
Distribución de la memoria
En el ejemplo tenemos 4 variables, a las cuales se les han asignado las siguientes
direcciones de memoria:
Como se observa el tamaño de memoria asignado depende del tipo de dato declarado.
Para poder manipular los datos almacenados, tenemos que hacer referencia a la
variable correspondiente: VAR_1, VAR_2, etc.
Si bien es cierto que los punteros hacen referencia direcciones de memoria, para el
sistema operativo, un puntero y una variables tienen el mismo concepto: es un espacio
Una de las diferencias entre las variables y punteros, es que estos últimos siempre
tendrán asignado un mismo tamaño de espacio de memoria (este tamaño dependerá
de la arquitectura del computador), sin importar el tipo de dato de la variable a la cual
hace referencia; esto se explica porque los puntero solo almacenan direcciones de
memoria y toda dirección de memoria ocupa un espacio fijo de almacenamiento:
¿Si un puntero tiene tamaño constante, porqué se debe de incluir el tipo de dato de la
variablel a la cual hace referencia?. El tipo de dato se debe incluir porque al momento
de hacer la des-referencia (proceso de leer el contenido de la memoria referenciada)
se debe sabe hasta dónde debe leer (el tamaño de la variable); el puntero solo tiene
la dirección de memoria de inicio pero no conoce la dirección de memoria final, por sí
solo no sabe cuál es el tamaño de la variable referenciada; necesita la dirección final
de esa variable, esa dirección final solo la puede obtener del tipo de dato de la variable
referenciada.
Sobre las variables ya sabemos cuál es su contendio. Los punteros siempre almancen
el valor de una dirección de memoria; la variable puntero PUNT_1 que hace referencia
a la variable VAR_1 tiene asignado el valor de 1, esto es así, porque la dirección de
memoria de la variable VAR_1 es 1; de la misma forma sucederá con las siguientes 2
variables de tipo puntero.
➢ VECTORES, un vector es una estructura de datos de una sola dimensión que puede
almacenar una cantidad de variables del mismo tipo, es decir, podemos tener un vector
que almacenará uno, dos, tres, cuatro, etc… valores del mismo tipo.
Cada elemento del vector tendrá una numeración o índice, el índice inicial tendrá el
valor de cero, el segundo índice el valor de uno, el tercer índice el valor de dos y así
sucesivamente hasta el tamaño que se haya definido para el vector.
int nota[2];
Para la asignación de valores a cada elemento del vector, se puede realizar durante la
declaración de esta o posteriormente haciendo uso de sus índices.
Para crear punteros que hagan referencia a vectores, solo se deberá asignar el nombre
del vector al puntero, ya que el nombre del vector siempre hace referencia al primer
elemento de este.
int *pun_vector_nota = nota;
Pasar vectores como parámetros a funciones se hace por referencia, es decir, se pasa
la dirección de memoria del primer elemento; ya que los vectores tienen el mismo
comportamiento de un puntero, toda asignación a auna función será por referencia;
dentro de la función se deberá controlar la actualización de los datos del vector, ya
que al pasar por referencia, cualquier actualización de la misma, se verá reflejado en
la función principal.
Función_vector(nota);
➢ MATRICES, una matriz es una estructura de datos formada por mas de una dimensión
(vector), de la misma forma que un vector contiene un conjunto de variables, una
matriz contiene un conjunto de vectores; por lo tanto todos tendrán un mismo tipo de
dato y nombre común. Para hacer referencia a sus elementos se usará un índice
combinado que está formado por la cantidad de vectores que conforman la matriz.
Puede haber, por ejemplo, matrices de elementos de tipo de dato float o matrices de
tipo de dato char.
int nota[4] [10];
nota[0][0] = 16;
nota[0][1] = 18;
nota[0][2] = 14;
IV. LABORATORIO N° 1
Escriba un programa en C++ para declarar variables comunes y variables punteros, luego
imprima en pantalla el contenido de cada variable;
V. LABORATORIO N° 2
VI. LABORATORIO N° 3
VII. LABORATORIO N° 4