Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando structs en C: Definición, variables, acceso y ejemplos avanzados

Dominando structs en C

Aprenda a definir, crear y usar structs en C con ejemplos claros y buenas prácticas.

¿Qué es un struct en C?

Un struct (abreviatura de structure) es un tipo de dato compuesto que agrupa variables de diferentes tipos bajo un solo nombre. Es la base para crear estructuras de datos complejas en C.


Definición de una estructura

Antes de poder crear variables de un tipo struct, debe definir el tipo. La palabra clave struct introduce la definición:

struct nombreEstructura {
    tipoDato miembro1;
    tipoDato miembro2;
    … 
};

Ejemplo:

struct Person {
    char name[50];
    int citNo;
    float salary;
};

Esto crea un nuevo tipo llamado struct Person. Ahora puede declarar variables de ese tipo.


Creación de variables de estructura

Definir un tipo struct no asigna memoria. Para trabajar con él, declare variables:

struct Person {
    // miembros
};
int main() {
    struct Person person1, person2, p[20];
    return 0;
}

Alternativamente, combine la definición y la declaración de variables:

struct Person {
    // miembros
} person1, person2, p[20];

Acceso a miembros de struct

Dos operadores recuperan miembros:

  1. . – Operador de acceso a miembro.
  2. -> – Operador de acceso a miembro mediante puntero a struct (cubierto en otro tutorial).

Para leer o modificar el salary de person2:

person2.salary

Ejemplo 1: Uso de un struct en C

#include <stdio.h>
#include <string.h>
struct Person {
    char name[50];
    int citNo;
    float salary;
} person1;
int main() {
    strcpy(person1.name, "George Orwell");
    person1.citNo = 1984;
    person1.salary = 2500;
    printf("Nombre: %s\n", person1.name);
    printf("Nº Ciudadanía: %d\n", person1.citNo);
    printf("Salario: %.2f", person1.salary);
    return 0;
}

Salida

Nombre: George Orwell
Nº Ciudadanía: 1984
Salario: 2500.00

Observe que strcpy() copia el string en el array char de tamaño fijo porque el operador de asignación no puede usarse directamente con arrays.


Uso de typedef con structs

La palabra clave typedef crea un alias para un tipo, simplificando las declaraciones:

typedef struct Distance {
    int feet;
    float inch;
} distances;
int main() {
    distances d1, d2;
}

Sin typedef, escribiría:

struct Distance d1, d2;

Ejemplo 2: Alias en la práctica

#include <stdio.h>
#include <string.h>
typedef struct Person {
    char name[50];
    int citNo;
    float salary;
} person;
int main() {
    person p1;
    strcpy(p1.name, "George Orwell");
    p1.citNo = 1984;
    p1.salary = 2500;
    printf("Nombre: %s\n", p1.name);
    printf("Nº Ciudadanía: %d\n", p1.citNo);
    printf("Salario: %.2f", p1.salary);
    return 0;
}

Salida

Nombre: George Orwell
Nº Ciudadanía: 1984
Salario: 2500.00

Estructuras anidadas

Los structs pueden contener otros structs, permitiendo modelado jerárquico de datos:

struct complex {
    int imag;
    float real;
};
struct number {
    struct complex comp;
    int integers;
} num1, num2;

Para establecer imag de num2 a 11:

num2.comp.imag = 11;

Ejemplo 3: Structs anidados en acción

#include <stdio.h>
struct complex {
    int imag;
    float real;
};
struct number {
    struct complex comp;
    int integer;
} num1;
int main() {
    num1.comp.imag = 11;
    num1.comp.real = 5.25;
    num1.integer = 6;
    printf("Parte Imaginaria: %d\n", num1.comp.imag);
    printf("Parte Real: %.2f\n", num1.comp.real);
    printf("Entero: %d", num1.integer);
    return 0;
}

Salida

Parte Imaginaria: 11
Parte Real: 5.25
Entero: 6

¿Por qué usar structs en C?

Suponga que necesita almacenar el nombre, número de ciudadanía y salario de una persona. Sin structs, crearía variables separadas para cada campo de cada persona, llevando rápidamente a duplicación de código y confusión. Los structs encapsulan datos relacionados en una sola unidad lógica, promoviendo código más limpio y mantenimiento más fácil.


¿Qué sigue?

Lenguaje C

  1. C# Hola Mundo – Construyendo su primera aplicación en C#
  2. Entendiendo palabras clave e identificadores en C#: Reglas, listas y mejores prácticas
  3. Domine variables y tipos de datos primitivos en C#: Guía completa
  4. Operadores en C# – Guía completa de operadores en C#
  5. Dominando operadores bit a bit y de desplazamiento en C#: Guía completa
  6. Fundamentos de C#: Entrada y salida esenciales
  7. Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
  8. Dominando los comentarios en C#: Tipos, mejores prácticas y documentación XML
  9. Dominando la sentencia switch en C#: Sintaxis, ejemplos y mejores prácticas
  10. Operador ternario en C#: Guía concisa para expresiones condicionales
  11. Sentencia break en C#: Cómo y cuándo usarla