Diccionario

Estructura (struct)

Un tipo de dato que agrupa varios campos con nombre, como una ficha con nombre, precio y existencias.

Un struct reúne datos relacionados en un solo tipo. Cada campo tiene un nombre y un tipo, y se accede a él con un punto: producto.precio.

En C solo agrupa datos; en Go, Rust o C# también puede tener métodos, de forma parecida a una clase pero sin herencia.

Un ejemplo

struct Producto { nombre, precio, stock } describe cada artículo de un inventario.

Por qué importa

Casi cualquier programa maneja entidades con varios datos: un usuario con nombre, correo y edad; un producto con precio y existencias; un punto con coordenadas x e y. Sin estructuras tendrías que llevar variables sueltas y pasarlas una a una a cada función, con el riesgo de mezclar el orden. Un struct las agrupa bajo un solo nombre y un solo tipo, y el código se vuelve más legible y menos propenso a errores.

Las verás en C, Go, Rust, C#, Swift y otros. En lenguajes de bajo nivel son también la forma de describir cómo se organizan los datos en memoria, algo importante al leer formatos de archivo, protocolos de red o al comunicarte con hardware. Aprender a modelar tus datos con estructuras es uno de los primeros pasos antes de pasar a clases y orientación a objetos.

Confusiones frecuentes

Se confunde con la clase. En C no existe la clase y el struct solo guarda datos. En C# y Swift, la diferencia clave es que un struct es un tipo por valor (al asignarlo se copia) y una clase es un tipo por referencia (se comparten). En C++ la diferencia es mínima: sólo cambia la visibilidad por defecto. Otro error típico de principiante en C es olvidar que, al pasar un struct a una función, se copia entero; para modificar el original hay que pasar un puntero.

Preguntas frecuentes

¿Cuándo uso struct y cuándo clase?

Usa struct para datos pequeños y simples que se agrupan sin comportamiento complejo, como un punto o una moneda. Usa clase cuando necesites herencia, estado compartido o lógica más rica. Las reglas exactas dependen del lenguaje.

¿Cómo accedo a un campo de un struct?

Con el punto: producto.precio. En C, si tienes un puntero al struct, se usa la flecha: p->precio.