in

Estructuras en C – GeeksforGeeks

gfg 200x200 min

¿Qué es una estructura?
Una estructura es un tipo de datos definido por el usuario en C / C ++. Una estructura crea un tipo de datos que se puede utilizar para agrupar elementos de tipos posiblemente diferentes en un solo tipo.

Structure In C

¿Cómo crear una estructura?
La palabra clave ‘struct’ se utiliza para crear una estructura. A continuación se muestra un ejemplo.

struct address

{

   char name[50];

   char street[100];

   char city[50];

   char state[20];

   int pin;

};

¿Cómo declarar variables de estructura?
Una variable de estructura puede declararse con una declaración de estructura o como una declaración separada como los tipos básicos.

struct Point

{

   int x, y;

} p1; 

 

 

struct Point

{

   int x, y;

}; 

 

int main()

{

   struct Point p1; 

}

Nota: En C ++, la palabra clave struct es opcional antes de la declaración de una variable. En C, es obligatorio.

¿Cómo inicializar los miembros de la estructura?
Miembros de la estructura no puede ser inicializado con declaración. Por ejemplo, el siguiente programa en C falla en la compilación.

struct Point

{

   int x = 0; 

   int y = 0; 

}; 

La razón del error anterior es simple, cuando se declara un tipo de datos, no se le asigna memoria. La memoria se asigna solo cuando se crean variables.

Miembros de la estructura puede ser inicializado usando llaves ‘{}’. Por ejemplo, a continuación se muestra una inicialización válida.

struct Point

{

   int x, y;

}; 

 

int main()

{

   

   

   struct Point p1 = {0, 1}; 

}

¿Cómo acceder a los elementos de la estructura?
Se accede a los miembros de la estructura mediante el operador de punto (.).

#include<stdio.h>

 

struct Point

{

   int x, y;

};

 

int main()

{

   struct Point p1 = {0, 1};

 

   

   p1.x = 20;

   printf ("x = %d, y = %d", p1.x, p1.y);

 

   return 0;

}

¿Qué se denomina inicialización?
La inicialización designada permite que los miembros de la estructura se inicialicen en cualquier orden. Esta característica se ha agregado en el estándar C99.

#include<stdio.h>

 

struct Point

{

   int x, y, z;

};

 

int main()

{

   

   struct Point p1 = {.y = 0, .z = 1, .x = 2};

   struct Point p2 = {.x = 20};

 

   printf ("x = %d, y = %d, z = %dn", p1.x, p1.y, p1.z);

   printf ("x = %d", p2.x);

   return 0;

}

Producción:
x = 2, y = 0, z = 1
x = 20

Esta función no está disponible en C ++ y solo funciona en C.

¿Qué es una matriz de estructuras?
Como otros tipos de datos primitivos, podemos crear una matriz de estructuras.

#include<stdio.h>

 

struct Point

{

   int x, y;

};

 

int main()

{

   

   struct Point arr[10];

 

   

   arr[0].x = 10;

   arr[0].y = 20;

 

   printf("%d %d", arr[0].x, arr[0].y);

   return 0;

}

¿Qué es un puntero de estructura?
Como los tipos primitivos, podemos tener un puntero a una estructura. Si tenemos un puntero a la estructura, se accede a los miembros mediante el operador de flecha (->).

#include<stdio.h>

 

struct Point

{

   int x, y;

};

 

int main()

{

   struct Point p1 = {1, 2};

 

   

   struct Point *p2 = &p1;

 

   

   printf("%d %d", p2->x, p2->y);

   return 0;

}

¿Qué es la alineación de miembros de estructura?
Consulte https://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/

Limitaciones de las estructuras C

En lenguaje C, las estructuras proporcionan un método para empaquetar datos de diferentes tipos. Una estructura es una herramienta útil para manejar un grupo de elementos de datos relacionados lógicamente. Sin embargo, las estructuras C tienen algunas limitaciones.

  • La estructura C no permite que el tipo de datos de estructura se trate como tipos de datos integrados:
  • No podemos usar operadores como +, – etc. en variables de estructura. Por ejemplo, considere el siguiente código:

    struct number

    {

        float x;

    };

    int main()

    {

        struct number n1,n2,n3;

        n1.x=4;

        n2.x=3;

        n3=n1+n2;

        return 0;

    }

     

     

      

     

  • Sin ocultar datos: Las estructuras C no permiten la ocultación de datos. Se puede acceder a los miembros de la estructura mediante cualquier función, en cualquier lugar del alcance de la estructura.
  • Funciones dentro de la estructura: Las estructuras C no permiten funciones dentro de la Estructura
  • Miembros estáticos: Las estructuras C no pueden tener miembros estáticos dentro de su cuerpo
  • Modificadores de acceso: C El lenguaje de programación no admite modificadores de acceso. Por tanto, no se pueden utilizar en estructuras C.
  • Creación de construcción en Estructura: Las estructuras en C no pueden tener un constructor dentro de las estructuras.

    Artículo relacionado: Estructuras C frente a estructuras C ++

    Pronto discutiremos temas relacionados con la unión y otras estructuras en C. Escriba sus comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

    ¡Atención lector! No dejes de aprender ahora. Disfruta el Curso First-Step-to-DSA para estudiantes de las clases 9 a 12 , diseñado específicamente para presentar estructuras de datos y algoritmos a los estudiantes de la clase 9 a 12

  • Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    vbscript

    Tutorial de VBScript

    edit

    Enamoramiento vs amor: diferencia y comparación