1、结构体类型的概念及定义
结构类型:
不是基本类型也不是指针,他是若干相同或不同类型数据的集合。
常用的结构类型有数组、结构体、共用体
数组是具有相同类型数据的集合,用于处理大量相同类型的数据运算。
结构体用于将不同类型的数据结合到一起,以便引用。
2.定义方法
2.1先声明结构体类型,再去定义结构体变量
1)第一步:声明结构体类型
struct 结构体类型名
{
成员列表
};
2)第二步:定义结构体变量
Struct 结构体类型名 结构体变量1,结构体变量2,结构体变量3;
struct news
{
int id;
char sex[20];
char name[20];
long long tel;
long long qq;
char add[20];
};
struct news stu01,stu02,stu03;
定义结构体类型时,不分配空间
定义结构体变量后,才分配空间
3.初始化结构体变量
①在定义结构体变量之前,必须新定义结构体类型,然后再定义变量
②在定义结构体变量时,可以顺便给结构体变量赋初值,称为初始化
③结构体变量初始化时,各个成员顺序初始化
//初始化方法一
struct stu_info
{
int id;
char name[20];
int age;
char add[20];
}stu01={1001,"张三",23,"西安"};
//初始化方法二
struct stu_info
{
int id;
char name[20];
int age;
char add[20];
};
struct stu_info stu01; //stu01是结构体变量名
//初始化结构体变量
stu01.id=1001;
strcpy(stu01.name,"无状");
stu01.age=22;
strcpy(stu01.add,"西安爱你");
int main()
{
test_stu();
return 0;
}
4.结构体嵌套
void test1(void)
{
struct birth
{
int year;
int month;
int day;
};
struct news
{
int id;
char *sex;
char *name;
long long tel;
long long qq;
char *add;
struct birth bir;
}stu01={1111,"办性人","找妆",18235995,22832778,"西安"};
struct news stu02={1112,"半兽人","学委",15225330,22937634,"河南"};
stu01.bir.year=1899;
stu01.bir.month=02;
stu01.bir.day=30;
stu02.bir.year=1899;
stu02.bir.month=02;
stu02.bir.day=30;
printf("stu01.id=%d\n",stu01.id);
printf("stu01.sex=%s\n",stu01.sex);
printf("stu01.name=%s\n",stu01.name);
printf("stu01.tel=