这里分享下常用的结构体操作
目录
1.结构体
struct AAA
{
int a;
char b;
long c;
};
struct 结构体名字
{
变量类型 变量名;
};(不要忘记分号)
2.结构体数组
struct AAA arr[3]={0};
arr[0].a = 1; arr[0].b = 2;arr[0].c = 3;
用一个结构体数组存储3个学生的学号,姓名,性别信息,并打印输出
struct AAA
{
int num;
char name[15];
char sex[15];
};
struct AAA arr[3]={0};
for(int i = 0;i<3;i++)
{
scanf("%d,%s,%s",&arr[i].num,arr[i].name,arr[i].sex);
}
for(int i = 0;i<3;i++)
{
printf("%d,%s,%s",arr[i].num,arr[i].name,arr[i].sex);
}
3.结构体嵌套
struct AAA zhangsan;
struct AAA arr[3]={0};
struct AAA *p = &zhangsan;
struct AAA *q = arr;
尝试用指针修改结构体
p.num = 20;
*(q+1).num = 33;
4.结构体指针
struct Date
{
int year;
int mon;
int day;
};
struct Student
{
char name[15];
int num;
struct Date birthday;
};
初始化
struct Student Student1={“张三”,18,{1998,9,8}};
创建一个struct Student类型的有3个成员的结构体数组,用for循环进行赋值,打印;
struct Student arr[3]={0};
for(int i = 0;i<3;i++)
{
scanf("%s,%d,%d,%d,%d",arr[i].name,&arr[i].num,&arr[i].birthday.year,&arr[i].birthday.mon,&arr[i].birthday.day);
}