Está en la página 1de 5

ESTRUCTURAS DE DATOS

Taller de Punteros
7 de febrero de 2024

1. Indique 3 aplicaciones de los punteros.

-Se utilizan principalmente en la creación de árboles, grafos y estructuras de datos.


-Proporcionan asignación de memoria dinámica.
-Paso de argumentos por referencia.

2. Explique detalladamente. De que depende el numero de celdas requeridas en memoria


para almacenar un dato?

Hay varios factores para determinar esto, primero tenemos que que tipo de dato es
como Int , Float, Char, y dependiendo de esto es el numero de bytes que ocupara.

También depende de la arquitectura del sistema ya que si es sistema es de 32 o 64 bits


puede variar el tamaño de los datos.

Depende también del compilador que utilicemos ya que dependiendo de la


configuración de cada uno afecta en el tamaño del dato.

3. ¿Como se determina la dirección de memoria de un dato?

Para determinar la dirección de memoria se utiliza &, esto lo que hace es que devuelve la
dirección de memoria de una variable.

4. Si pv es un puntero y v es una variable y realizamos la siguiente asignación: pv=&v.


Indique como accedemos al dato representado por v desde pv.

Lo que estamos haciendo en pv=&v es asignar la direccion de memoria de v al


puntero pv, para acceder al dato de v necesitamos llamar al puntero *pv

5. Indique el significado y uso de los siguientes operadores para punteros en lenguaje C.


a. & : Lo utilizamos para acceder a la dirección de memoria de una variable

b. * : Lo utilizamos para acceder al valor que esta almacenado en una dirección de


memoria que es apuntada por un puntero
6. Que es un operador monario y como se resuelve la asociatividad de estos operadores?
Es un operador que actúa sobre un solo operando para producir un nuevo valor como por
ejemplo (&) operador de dirección y (*)operador de indirección.

7. Realice el ejemplo de la pagina para realizar operaciones con punteros y con expresiones
ordinarias. Explique con sus propias palabras lo ilustrado en el ejemplo.

V inicia con un valor de 3


Se declara un puntero *pv
Se asigna a u1 el valor de la expresión
Se asigna a pv la direccion de memoria de v
Se asigna a u2 el valor de la expresión
Se imprime u1 y u2

8. Para las siguientes asignaciones: Explique que ocurre en cada caso.

*px=0; Asigna a cero la dirección donde apunta px


*px+=1; Incrementa en uno el contenido apuntado por px
px=py; asigna la direccion de px a py

9. Indique si las siguientes asignaciones son equivalentes: Explique su respuesta.

(*px)++; Incrementa en uno el contenido apuntado por px, primero se accede


al valor apuntado por px y luego se incrementa el valor con (++)

*px++; Incrementa en uno el puntero y toma el valor apuntado por px,


primero se incrementa px y luego se accede al valor apuntado por la
direccion de memoria original de px
10. Realice la prueba de escritorio del siguiente ejemplo, indique el resultado y describa que
hace el programa.

1.Primero declaramos las variables enteros ivar y *iptr(puntero)

2.iptr=&ivar se asigna la direccion de memoria de ivar a iptr, o sea que iptr ahora apunta a la
direccion de memoria de ivar

3.le damos a ivar el valor de 122

4.imprimimos la direccion de ivar

5.imprimimos el valor de ivar (122)

6.imprimimos la direccion de iprt

7.imprimimos al valor que punta iprt (122)

Todo esto lo podemos ver mejor en la salida estandar


11. Paso de punteros a una función:

Indique la diferencia entre utilizar parámetros por valor y parámetros por


referencia.

En los parámetros por valor se pasa una copia del valor de la variable a la función,
los cambios de la función no afectan a la variable original fuera de ella.

En los parámetros por referencia se pasa la dirección de memoria de la variable a la


función, los cambios de la función afectan a la variable original fuera de ella.

12. Punteros y arreglos unidimensionales. Realice los ejemplos de las páginas 5 y 6.


Y explique la relación que existe entre los punteros y los arreglos unidimensionales.
Muestre la salida y explique.
relación entre punteros y arreglos unidimensionales

se utiliza un arreglo x para mostrar como accede a sus elementos

se imprime la direccion de cada elemnto del arreglo, el arreglo actúa como


un puntero de primer elemento

los arreglos y punteros de usan de manera intercambiable para manipular


datos y direcciones de memoria

relación entre punteros y arreglos unidimensionales


se muestra como asigna valores y direcciones a un arreglo línea y a un
puntero p1

un arreglo actúa como un puntero al primer elemento del arreglo

También podría gustarte