Estructuras

6. Estructuras Anidadas

Como una estructura en un tipo de datos o plantilla creada por el programador, nada impide que no se pueda declarar una o mas estructuras  dentro de una estructura.

Que es un anuncio - Gestion.OrgLas estructuras definidas dentro de otra estructura DEBEN estar instanciadas, si no, NO HAY FORMA DE ACCEDER  ellas.

#include <iostream>
>#define instancias 2
using namespace std;
//Declaro Estructuras Globales.
struct St_Personas 
{
char nombre[10],apellido[20];
long dni;
};//declaro estructura (plantilla) NO hay instancias!!
struct St_otros_datos 
{
int dia,mes,anio; 
};//declaro estructura (plantilla) NO hay instancias!!  
int main()
{
//declaro estructuras anidadas..pero DOY NOMBRE A LAS INSTANCIAS! struct St_Registro{St_Personas persona; St_otros_datos otros;} alta_datos[instancias]; for(int s=0;s<instancias;s++) { cout<<endl<<"Nombre :";cin>>alta_datos[s].persona.nombre; cout<<endl<<"Apellido :";cin>>alta_datos[s].persona.apellido; cout<<endl<<"DNI :";cin>>alta_datos[s].persona.dni; cout<<endl<<"Dia Nacimiento :";cin>>alta_datos[s].otros.dia; cout<<endl<<"Mes Nacimiento :";cin>>alta_datos[s].otros.mes; cout<<endl<<"Año Nacimiento :";cin>>alta_datos[s].otros.anio; } for(int s=0;s<instancias;s++) { cout<<endl; cout<<alta_datos[s].persona.nombre<<"\t"; cout<<alta_datos[s].persona.apellido<<"\t"; cout<<alta_datos[s].persona.dni<<"\t"; cout<<alta_datos[s].otros.dia<<"\t"; cout<<alta_datos[s].otros.mes<<"\t"; cout<<alta_datos[s].otros.anio<<"\t"; cout<<endl; } return 0; }
  pensar
¿Como accedo al miembro de una estructura anidada? , trate de identificar las partes y descríbalas con los nombres apropiados.
¿alta_datos que tipo de datos es? ¿Es local o global?
¿personas que tipo de datos es?¿Es local o global?
¿otros que tipo de datos es?¿Es local o global?
¿St_Personas que es? ¿Es local o global?
¿St_otros_datos  que es? ¿Es local o global?