Saltar al contenido

Estructura en C – javatpoint

septiembre 29, 2021
structure memory allocation

¿Por qué utilizar la estructura?

En C, hay casos en los que necesitamos almacenar múltiples atributos de una entidad. No es necesario que una entidad tenga toda la información de un solo tipo. Puede tener diferentes atributos de diferentes tipos de datos. Por ejemplo, una entidad Estudiante puede tener su nombre (cadena), número de rollo (int), marcas (flotante). Para almacenar este tipo de información respecto a una entidad estudiante, tenemos los siguientes enfoques:

  • Construya matrices individuales para almacenar nombres, números de rollo y marcas.
  • Utilice una estructura de datos especial para almacenar la colección de diferentes tipos de datos.

Veamos el primer enfoque en detalle.

#include void main () {nombres de caracteres[2][10],ficticio; // Los nombres de la matriz de caracteres de 2 dimensiones se utilizan para almacenar los nombres de los estudiantes int roll_numbers[2],I; marcas de flotación[2]; for (i = 0; i

Producción

Enter the name, roll number, and marks of the student 1Arun 90 91        
Enter the name, roll number, and marks of the student 2Varun 91 56      
Enter the name, roll number, and marks of the student 3Sham 89 69

Printing the Student details...
Arun 90 91.000000                                                                      
Varun 91 56.000000  
Sham 89 69.000000

El programa anterior puede cumplir con nuestro requisito de almacenar la información de un estudiante de la entidad. Sin embargo, el programa es muy complejo y la complejidad aumenta con la cantidad de entrada. Los elementos de cada una de las matrices se almacenan de forma contigua, pero es posible que no todas las matrices se almacenen de forma contigua en la memoria. C le proporciona un enfoque adicional y más simple en el que puede usar una estructura de datos especial, es decir, una estructura, en la que puede agrupar toda la información de diferentes tipos de datos con respecto a una entidad.

¿Qué es la estructura?

La estructura en c es un tipo de datos definido por el usuario que nos permite almacenar la colección de diferentes tipos de datos. Cada elemento de una estructura se llama miembro. Estructuras ca; Simular el uso de clases y plantillas, ya que puede almacenar información diversa.

los , estructura La palabra clave se utiliza para definir la estructura. Veamos la sintaxis para definir la estructura en c.

struct nombre_estructura {tipo_datos miembro1; data_type member2; . . data_type memeberN; };

Veamos el ejemplo para definir una estructura para un empleado de entidad en c.

struct empleado {int id; nombre del personaje[20]; salario flotante; };

La siguiente imagen muestra la asignación de memoria del empleado de la estructura que se define en el ejemplo anterior.

c estructura de asignación de memoria

Aquí, estructura es la palabra clave; empleado es el nombre de la estructura; identificación, nombre, y salario son los miembros o campos de la estructura. Entendamos por el diagrama que se muestra a continuación:

c estructura

Declaración de variable de estructura

Podemos declarar una variable para la estructura para que podamos acceder al miembro de la estructura fácilmente. Hay dos formas de declarar una variable de estructura:

  1. Por palabra clave struct dentro de la función main ()
  2. Declarando una variable a la hora de definir la estructura.

1er camino:

Veamos el ejemplo para declarar la variable de estructura mediante la palabra clave struct. Debe declararse dentro de la función principal.

struct empleado {int id; nombre del personaje[50]; salario flotante; };

Ahora escriba el código dado dentro de la función main ().

estructura empleado e1, e2;

Las variables e1 y e2 se pueden utilizar para acceder a los valores almacenados en la estructura. Aquí, e1 y e2 se pueden tratar de la misma manera que los objetos en C ++ y Java.

2do camino:

Veamos otra forma de declarar variable a la hora de definir la estructura.

struct empleado {int id; nombre del personaje[50]; salario flotante; } e1, e2;

Que enfoque es bueno

Si el número de variables no es fijo, utilice el primer enfoque. Le proporciona la flexibilidad de declarar la variable de estructura muchas veces.

Si no. de las variables son fijas, utilice el segundo enfoque. Guarda su código para declarar una variable en la función main ().

Accediendo a miembros de la estructura

Hay dos formas de acceder a los miembros de la estructura:

  1. Por . (miembro o operador de punto)
  2. Por -> (operador de puntero de estructura)

Veamos el código para acceder al identificación miembro de p1 variable por. (miembro) operador.

p1.id

Ejemplo de estructura C

Veamos un ejemplo simple de estructura en lenguaje C.

#incluir
#incluir
struct empleado {int id; nombre del personaje[50]; } e1; // declarando la variable e1 para la estructura int main () {// almacena la información del primer empleado e1.id = 101; strcpy (e1.name, «Sonoo Jaiswal»); // copiando una cadena en una matriz de caracteres // imprimiendo la primera información del empleado printf («id del empleado 1:% d n», e1.id); printf («nombre del empleado 1:% s n», e1.name); return 0; }

Producción:

employee 1 id : 101
employee 1 name : Sonoo Jaiswal

Veamos otro ejemplo de la estructura en lenguaje C para almacenar información de muchos empleados.

#incluir
#incluir
struct empleado {int id; nombre del personaje[50]; salario flotante; } e1, e2; // declarando las variables e1 y e2 para la estructura int main () {// almacena la información del primer empleado e1.id = 101; strcpy (e1.name, «Sonoo Jaiswal»); // copiando la cadena en la matriz de caracteres e1.salary = 56000; // almacena la información del segundo empleado e2.id = 102; strcpy (e2.name, «James Bond»); e2.salary = 126000; // imprimiendo la primera información del empleado printf («ID de empleado 1:% d n», e1.id); printf («nombre del empleado 1:% s n», e1.name); printf («salario del empleado 1:% f n», e1.salary); // imprimiendo la información del segundo empleado printf («ID de empleado 2:% d n», e2.id); printf («nombre del empleado 2:% s n», e2.name); printf («salario del empleado 2:% f n», e2.salary); return 0; }

Producción:

employee 1 id : 101
employee 1 name : Sonoo Jaiswal
employee 1 salary : 56000.000000
employee 2 id : 102
employee 2 name : James Bond
employee 2 salary : 126000.000000

close