code:
#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
/*
结构体
结构体数组
结构体指针
结构体嵌套
*/
struct student{
char name[50];
int age;
}a,b,d[2];//实例化了两个对象a,b
//实例化了一个结构体数组d[2]
//结构体嵌套:一个结构体对象作为另一个结构体对象的元素
struct teacher{
int age;
char sex[50];
char name[50];
student s[3];
};
int main()
{
student c;//实例化对象c
strcpy(a.name,"xiaoming");
a.age=10;
strcpy(b.name,"xiaohong");
b.age=12;
//结构体数组
strcpy(d[0].name,"d0");
strcpy(d[1].name,"d1");
//结构体指针
student *p;
p=&c;
strcpy(p->name,"xiaowang");
p->age=14;
/*
c.age 结构体对象c的元素age
p->age 指针p所指向的结构体对象c的元素age,等价于(*p).age
*/
//结构体嵌套
teacher t1;
teacher *t=&t1;
t->age=50;
strcpy(t->name,"pro W");
strcpy(t->sex,"man");
t->s[0]=a;
t->s[1]=b;
t->s[2]=c;
cout<<t1.name<<" "<<t1.age<<" "<<t1.sex<<" "<<endl;
cout<<t1.s[0].name<<" "<<t1.s[0].age<<endl;
cout<<t1.s[1].name<<" "<<t1.s[1].age<<endl;
cout<<t1.s[2].name<<" "<<t1.s[2].age<<endl;
return 0;
}
运行结果: