Map o Estructura en C

Ammar Ali 12 octubre 2023
Map o Estructura en C

Este tutorial discutirá el uso del Map o la estructura para crear una colección de variables en C.

Map o Estructura en C

Una estructura es una colección de variables de diferentes o iguales tipos de datos. Por ejemplo, si queremos crear un perfil para una persona para almacenar la edad, el nombre y la altura de la persona, podemos usar la estructura para almacenar toda la información bajo un solo Map o estructura.

Podemos usar la palabra clave struct para crear estructuras en el lenguaje C. La sintaxis básica de una estructura se da a continuación.

struct NameOfStructure {
  dataType_1 member_1;
  dataType_2 member_2;
  ....
};

Por ejemplo, creemos una estructura para almacenar la información de una persona. Vea el código a continuación.

struct Person {
  char *name;
  int age;
  float height;
};

Una estructura es una clase que podemos usar para crear objetos que contengan todas las variables definidas dentro de la estructura. Tenemos que escribir la palabra clave struct, luego el nombre de la estructura y luego el nombre del objeto para crear un objeto de la estructura.

Podemos acceder a cualquier miembro de la estructura usando el nombre del objeto y el nombre de la variable adjunto con un punto. Podemos obtener el valor de las variables o cambiar su valor usando el operador de asignación.

Por ejemplo, vamos a crear dos objetos de la estructura anterior, almacenar algún valor en ellos e imprimirlo usando la función printf(). Vea el código a continuación.

#include <stdio.h>

struct Person {
  char *name;
  int age;
  float height;
};

int main() {
  struct Person person1, person2;
  person1.name = "Max";
  person1.age = 20;
  person1.height = 6.2;
  printf("Person 1 name = %s\n", person1.name);
  printf("Person 2 name = %s", person2.name);
}

Producción :

Person 1 name = Max
Person 2 name =

En el código anterior, imprimimos el nombre de los dos objetos Person. Podemos ver en la salida que se muestra el nombre de la primera persona, pero no se imprime el nombre de la segunda persona porque no hemos almacenado ningún nombre para la segunda persona.

Los valores de las variables de los dos objetos de estructura pueden ser idénticos o diferentes, pero son independientes. También podemos obtener o cambiar los valores de otras variables como en el código anterior.

También podemos crear estructuras dentro de otras estructuras llamadas estructuras anidadas. Tenemos que crear un objeto de la estructura que queremos adjuntar con la otra estructura y luego usar el nombre del objeto para acceder a sus variables.

Por ejemplo, creemos otra estructura y vinculémosla con la estructura anterior. Vea el código a continuación.

#include <stdio.h>

struct job {
  char *name;
  int duration;
};
struct Person {
  struct job j;
  char *name;
  int age;
  float height;
};
int main() {
  struct Person person1, person2;
  person1.j.name = "Engineer";
  person1.name = "Max";
  person1.age = 20;
  person1.height = 6.2;
  printf("Person 1 job name = %s\n", person1.j.name);
  printf("Person 1 name = %s", person1.name);
}

Producción :

Person 1 job name = Engineer
Person 1 name = Max

En el código anterior, creamos otra estructura para almacenar la información sobre el trabajo de una persona y para acceder a sus variables, primero tenemos que acceder a la estructura padre, que en este caso es Person, y luego podemos acceder a las variables de la estructura job.

Hemos creado y enlazado dos estructuras, pero podemos crear tantas estructuras como queramos y enlazarlas entre sí.

En el caso de una gran cantidad de estructuras anidadas, debemos asegurarnos de que estamos usando el Map correcto para obtener la información de una variable. Una estructura es útil cuando queremos almacenar información sobre muchas cosas, como información sobre personas y su trabajo.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook