aprender: Cómo declarar, inicializar estructura anidada en el lenguaje de programación C? En este tutorial, vamos a aprender acerca de la estructura jerarquizada, su declaración, la inicialización y el acceso a los usuarios.
¿Cuál es la estructura anidada?
Estructura es un usuario definir el tipo de datos que contiene uno o más diferentes tipos de variables. Cuando una estructura de definición tiene un objeto de otra estructura, que se conoce como estructura anidada .
Considere el siguiente definiciones de la estructura
Estructura Definiciones
Aquí, estamos definiendo dos estructura fechaDeNacimiento y studentDetails y declarando un objeto de estructura fechaDeNacimiento dentro de la estructura studentDetails .
struct dateOfBirth
{
int dd,mm,yy;
};
struct studentDetails
{
char name[30];
int age;
struct dateOfBirth dob;
};
Aquí, la estructura fechaDeNacimiento contiene variables dd , mm y yy a almacenar la fecha y la estructura studentDetails contiene nombre , edad y el objeto de la estructura fechaDeNacimiento .
Estructura de inicialización
estructura puede ser inicializado por dos métodos
Método 1
struct studentDetails std={"Mike",21,{15,10,1990}};
O
struct studentDetails std={"Mike",21,15,10,1990};
Aquí, “Mike” y 21 se almacenarán en el nombre de los miembros y la edad de estructura studentDetails , while valores de 15, 10 y 1990 se almacenarán en la dd, mm, y yy de estructura fechaDeNacimiento .
Aquí, es el ejemplo inicializando los valores de uso de este método ( Sólo main () es aquí, lugar dado definiciones de la estructura antes de la () )
int main()
{
struct studentDetails std={"Mike",21,15,10,1990};
printf("Name: %s, Age: %dn",std.name,std.age);
printf("DOB: %d/%d/%dn",std.dob.dd,std.dob.mm,std.dob.yy);
return 0;
}
salida sería
Name: Mike, Age: 21
DOB: 15/10/1990
Método 2
struct dateOfBirth dob={15,10,1990};
struct studentDetails std={"Mike",21,dob};
Inicializar la primera estructura, luego use variable de estructura en el estado de inicialización de la estructura main (padre).
int main()
{
struct dateOfBirth dob={15,10,1990};
struct studentDetails std={"Mike",21,dob};
printf("Name: %s, Age: %dn",std.name,std.age);
printf("DOB: %d/%d/%dn",std.dob.dd,std.dob.mm,std.dob.yy);
return 0;
}
salida sería
Name: Mike, Age: 21
DOB: 15/10/1990