Una matriz es un dato estructurado soportado por el lenguaje C. Se puede usar una matriz para almacenar elementos de datos del mismo tipo. Si hay una declaración como marcas int [10]; entonces las marcas son una matriz que puede almacenar diez marcas y todas ellas son enteros. A veces es necesario almacenar elementos de datos de diferentes tipos en la misma ubicación de memoria. Por ejemplo, un empleado puede tener una identificación de empleado, nombre, departamento, edad, etc. Son de diferentes tipos de datos. Por lo tanto, es necesario tener un método para almacenar varios elementos de datos como una sola unidad. Las estructuras y las Uniones en C se utilizan para almacenar elementos de datos de diferentes tipos en la misma ubicación de memoria. Una estructura y una unión son similares pero se diferencian principalmente debido a la asignación de memoria. La memoria requerida para almacenar una variable de estructura es la suma del tamaño de memoria de todos los miembros. La memoria requerida para almacenar una variable de unión es la memoria requerida para el elemento más grande en la unión. Es decir la diferencia clave entre estructura y unión en C. Este artículo analiza la diferencia entre estructura y unión en C.
1. Resumen y diferencia clave
2. ¿Qué es la estructura en C?
3. Que es union en c
4. Similitudes entre estructura y unión en C
5. Comparación lado a lado - Estructura vs Unión en C en forma tabular
6. Resumen
Una estructura es un tipo de datos definido por el usuario en C. Ayuda a combinar elementos de datos de diferentes tipos. Una estructura puede representar registros. Un estudiante puede tener student_id, student_name, etc. En lugar de almacenar cada variable por separado, todos estos elementos de datos diferentes se pueden compactar en una sola unidad utilizando una estructura. Se define utilizando la palabra clave 'struct'. En una estructura, se puede acceder a todos sus miembros en cualquier momento. Lo siguiente crea una estructura de tipo de datos derivada..
estructura estudiante
intstudent_id;
char student_name [20];
;
Para la estructura anterior, las variables se pueden declarar como sigue.
struct Student student1, student2, student3;
Hay dos métodos para acceder a los miembros de la estructura. Esto es utilizando el operador miembro (.) Y el operador de puntero de estructura (->). Se puede acceder a los miembros usando structure_variable_name. nombre de miembro. Si el programador desea acceder al nombre del alumno 2, puede escribir la declaración como printf (student2.student_namename);
Consulte el siguiente programa con una estructura.
Figura 01: Programa C con estructuras.
De acuerdo con el programa anterior, el estudiante es una estructura. Contiene student_id y student_name. Dos variables de tipo de estructura se declaran en el programa principal. Se llaman student1 y student2. La identificación de student1 se asigna con el valor 1 utilizando el operador miembro como student1.student_id = 1. El nombre "Ann" es una cadena. Por lo tanto, se copia al miembro student_name mediante la función de copia de cadena strcpy. La identificación y el nombre se asignan a student2 de una manera similar. Finalmente, esos valores se imprimen utilizando el operador miembro..
La cantidad de memoria requerida para almacenar una variable de estructura es la suma del tamaño de memoria de todos los miembros. Student_id contiene 4 bytes y student_name contiene 20 bytes (un byte para cada carácter). El total de 24 bytes es la suma del tamaño de memoria requerido por la estructura.
Una unión es un tipo de datos definido por el usuario en C. Ayuda a almacenar diferentes tipos de datos en la misma ubicación de memoria. Un libro puede tener propiedades como nombre de libro, precio, etc. En lugar de crear variables para cada uno de ellos, se puede usar una unión para compactar todos los diferentes tipos de datos en una unidad utilizando una unión. Se define mediante la palabra clave 'unión'. Lo siguiente crea un libro de unión de datos derivados.
unionBook
nombre de personaje [20];
doble precio;
;
Para la unión anterior, las variables se pueden declarar como sigue.
libro de la unión book1, book2;
Hay dos métodos para acceder a los miembros del sindicato. Esto es utilizando el operador miembro (.) Y el operador de puntero de estructura (->). Se puede acceder a los miembros usando union_variable_name. nombre de miembro. Si el programador desea acceder al nombre del libro1, puede escribir la declaración como printf (nombre del libro);
Consulte el siguiente programa con un sindicato.
Figura 02: Programa C utilizando unión
De acuerdo con el programa anterior, el Libro es una unión. El book1 es una variable de tipo union. El nombre y el precio son valores asignados. En unión, solo se puede acceder a uno de sus miembros a la vez y todos los demás miembros tendrán valores de basura. El valor de id no se imprime correctamente, pero el valor de precio se imprime correctamente.
Figura 03: Programa de C modificado con unión
De acuerdo con el programa anterior, el libro es una unión. El libro1 y el libro2 son variables de tipo unión. Primero, se asigna el valor para book1 y se imprime. Luego se asigna el valor para el nombre de libro2 y se imprime. Todos los miembros se imprimen correctamente porque se está utilizando un miembro a la vez. La memoria requerida para almacenar una unión es la memoria requerida para el elemento más grande de la unión. En el programa anterior, la variable de nombre es de 20 bytes. Es más grande que el precio. Así, la asignación de memoria para la unión es de 20 bytes..
Estructura vs Unión en C | |
La estructura es un tipo de datos definido por el usuario en lenguaje C que permite combinar datos de diferentes tipos juntos. | Union es un tipo de datos definido por el usuario en lenguaje C que permite combinar datos de diferentes tipos juntos. |
Accesibilidad | |
En una estructura, se puede acceder a todos sus miembros en cualquier momento.. | En una unión, solo se puede acceder a uno de sus miembros a la vez y todos los demás miembros contendrán valores de basura. |
Asignación de memoria | |
La memoria requerida para almacenar una variable de estructura es la suma del tamaño de memoria de todos los miembros. | La memoria requerida para almacenar una variable de unión es la memoria requerida para el elemento más grande en la unión. |
Palabra clave | |
La palabra clave utilizada para definir una estructura es 'struct'. | La palabra clave utilizada para definir una unión es 'unión'. |
Una matriz se utiliza para almacenar los elementos de datos del mismo tipo. A veces es necesario almacenar elementos de datos de diferentes tipos en la misma ubicación de memoria. El lenguaje de programación C proporciona estructura y unión para realizar esta tarea. Ambos son tipos de datos definidos por el usuario. La memoria requerida para almacenar una variable de estructura es la suma del tamaño de memoria de todos los miembros. La memoria requerida para almacenar una variable de unión es la memoria requerida para el elemento más grande en la unión. Esta es la diferencia entre estructura y unión en C.
1.Point, Tutoriales. “Estructuras en C”., Punto de tutoriales, 15 de agosto de 2017. Disponible aquí
2.Puntos, Tutoriales. "Uniones en C." , Punto de tutoriales, 15 de agosto de 2017. Disponible aquí