Sei sulla pagina 1di 4

Ensayo sobre apuntadores y estructuras.

El objetivo de este ensayo es dar a conocer los conceptos de estructuras y de apuntadores en


lenguaje c, ya que estos conceptos sin muy importantes para entender más a fondo sobre las
estructuras y apuntadores para si mismo hacer uso de ellos en nuestros códigos. Primordialmente
se explicara el concepto de estructura y algunos ejemplos, después el concepto de apuntadores y
algunos ejemplos. Para finalizar, se mencionara la relación entre apuntadores y estructuras con el
objetivo de llegar a optimizar los cogidos a futuro-

Estructuras.

Las estructuras son colecciones de variables que se relacionan bajo un nombre, pueden contener
variables de diferentes datos y también están constituidos por otros objetos de otro tipo. Para
definir una estructura en c++, se debe hacer uso de la palabra reservada Struct, la cual indica que
se está definiendo una estructura, además debe llevar un nombre. Sus variables a definir dentro
de las llaves de la estructura son los miembros de la estructura y cada estructura debe terminar en
un punto y coma.

En la figura 1 se mostrará cómo está compuesta una estructura simple.

Fig.1 Ejemplo de estructura simple.

No obstante, las estructuras se pueden inicializar mediante listas similares a las de los arreglos,
Para inicializar una estructura escriba en la declaración de la variable a continuación del nombre
de la variable un signo igual con los inicializadores entre llaves y separados por coma. En la figura
dos se muestra un ejemplo de cómo se puede inicializar una estructura.
Fig. 2. Inicialización de una estructura.

Apuntadores.
Un apuntador es una variable cuyo valor es la dirección de memoria de otra variable. Hacer uso de
los apuntadores permite que los programas sean más flexibles y más eficientes. Cuando se declara
una variable, el compilador reserva un espacio de memoria para ella y asocia el nombre de esta a
la dirección de memoria desde donde comienzan los datos de esa variable. Las direcciones de
memoria se suelen describir como números en hexadecimal.

La referenciación es la obtención de la dirección de una variable. En C y C++ esto se hace a través


del operador ‘&’, aplicado a la variable a la cual se desea saber su dirección. Nótese que se trata
de un operador unario. En la figura 3 de muestra cómo se referencia un apuntador en C-C++.

Fig 3. Referenciación de un apuntador en c++.

Sin embargo, un apuntador también se puede declarar especificando el tipo de dato al que
apunta, el operador ‘*’, y el nombre del apuntador. La sintaxis es la siguiente:

<Tipo de dato apuntado> *<identificador del apuntador>.

No obstante, los apuntadores también se pueden verificar, ya que los apuntadores se enlazan a
tipos de datos específicos (apuntadores a variables de cierto tipo), de manera que a un apuntador
solo se le pueden asignar direcciones de variables del tipo especificado en la declaración del
apuntador. En la figura 4 se puede apreciar la verificación de un apuntador.

Fig 4. Verificación de un apuntador.


Apuntadores a estructuras.

Un apuntador se puede apuntar hacia cualquier tipo de datos, incluyendo estructuras, pero no se
puede utilizar el operador punto para acceder a un campo. Ej:

• palumno.nombre es una forma incorrecta de acceder al nombre del alumno.

Mientras que :

•palumno->nombre

Es una forma correcta de aountar a una estructura y estos requieren del operador flecha
paracceder a los campos de estructura.

En la figura 5 de puede apreciar un ejemplo de una estructura con apuntadores.

Fig 5. Estructura con apuntadores.

Reserva de memoria dinámica

Los apuntadores deben apuntar hacia algún lugar de memoria que contenga una estructura, por
ejemplo:

•palumno = &a1;

Cuando requerimos de un conjunto de estructuras entonces debemos reservar la memoria por


medio de las funciones malloc, calloc o realloc. El operador sizeof nos proporcionara el tamaño
adecuado de nuestra estructura. En la figura 6 de puede apreciar un ejemplo de reserva de
memoria dinámica.
Fig 6. Reserva de memoria dinámica.

Typedef

La palabra reservada typedef proporciona un mecanismo para la creación de sinónimos (o alias)


para tipos de datos anteriormente definidos. Se utiliza a menudo para crear seudónimos para los
tipos de datos básicos. Si tenemos por ejemplo un programa que requiere enteros de 4 bytes
podría usar el tipo int en un programa y el tipo Long en otro. Para garantizar portabilidad podemos
utilizar typedef para crear un alias de los enteros de 4 bytes en ambos sistemas.

Potrebbero piacerti anche