Tutorial de programación en C para Linux Parte 23 – Estructuras
Hasta ahora, en esta serie de tutoriales de programación en C, hemos tratado varios aspectos, desde las variables hasta las funciones e incluso los punteros. Sin embargo, eso es todavía como rascar la superficie, ya que hay muchos otros conceptos importantes en el lenguaje de programación C.
Hoy, en este tutorial, hablaremos de uno de esos conceptos: el concepto de estructuras.
Estructuras en el lenguaje de programación C
Así es como se declara una estructura:
struct TAG {
variable declaration
variable declaration
...
...
...
};
TAG puede ser cualquier nombre que quieras darle a esta estructura, como emp_details.
A estas alturas debería ser de dominio público que las variables se utilizan para almacenar valores en un programa en C. Hasta ahora, hemos visto programas/código que utilizan una o varias variables, pero nunca hemos visto que se agrupen varias variables. Sí, es posible, y eso es esencialmente lo que hacen las estructuras.
Imagina un caso en el que el código que escribes se ocupa del mantenimiento de los datos de los empleados de una empresa. Cada vez que se incorpora un nuevo empleado, tu programa recibe el nombre, la edad, el cargo y el departamento del empleado. Así que, en este caso, lo ideal es que el código se escriba de forma que toda esta información relacionada con un empleado se trate como una sola unidad.
Así que una opción para escribir el código de esta manera es crear una estructura que agrupe toda esta información relacionada con el empleado. Todo lo que tienes que hacer es crear una instancia de la estructura (o una variable de ese tipo de estructura) y rellenar todos los detalles relacionados con el nuevo empleado.
A continuación te mostramos un par de formas de crear variables de tipo estructura (a, b y c en este caso):
struct emp_details {
variable declaration
variable declaration
...
...
...
}a, b, c;
struct emp_details a;
struct emp_details b;
struct emp_details c;
Basta de teoría, pongamos un ejemplo fácil de entender. Supón que tu equipo está formado por 2 miembros, y quieres tener sus datos almacenados en tu ordenador a través de un programa que quieres codificar en C. El siguiente fragmento de código debería darte una idea básica de cómo las estructuras pueden ser útiles en ese caso:
#include <stdio.h>
struct emp_details {
int emp_code;
int emp_age;
};
int main()
{
struct emp_details employee[2];
printf("\n enter code and age of first member\n");
scanf("%d", &employee[0].emp_code);
scanf("%d", &employee[0].emp_age);
printf("\n enter code and age of second member\n");
scanf("%d", &employee[1].emp_code);
scanf("%d", &employee[1].emp_age);
for(int i=0; i<2; i++)
{
printf("\n Code and age of member %d is: %d and %d \n", i+1, employee[i].emp_code, employee[i].emp_age);
}
return 0;
}
En este código, primero declaramos una estructura llamada ‘emp_details’ con ‘emp_code’ y ‘emp_age’ como sus dos variables miembro. Luego, en la función «main», definimos dos objetos de esta estructura en forma de matriz. A continuación, rellenamos las variables miembro correspondientes a estos objetos aceptando la entrada del usuario. Y finalmente, el programa devuelve estos valores al usuario.
Esta es la salida cuando ejecutamos el programa en nuestra máquina:
enter code and age of first member
105
27
enter code and age of second member
110
32
Code and age of member 1 is: 105 and 27
Code and age of member 2 is: 110 and 32
Las variables que forman parte de una unidad de estructura pueden ser de cualquier tipo. Incluso puedes tener objetos/instancia de una estructura diferente como parte de tu estructura. Todo esto y más en nuestro próximo tutorial sobre estructuras, así que permanece atento.
Conclusión
Este tutorial se ha centrado en los fundamentos de las estructuras en el lenguaje de programación C. Hemos aprendido a declarar una estructura, a definir un objeto o instancia para ella y, por último, a acceder a las variables de la estructura. En nuestros próximos tutoriales, profundizaremos un poco más y aprenderemos más sobre las estructuras.