C语言–结构体
1.结构体类型的概念及定义
是若干不相同或不同类型的数据集合;
1.1先声明结构体类型,再去定义结构体变量
第一步:声明结构体类型
struct --结构体类型名–
{
成员列表;
};
第二步:定义结构体类型名
struct --结构体-- 结构体变量1,结构体变量2;
定义的这两个结构体类型的变量,每个变量都有相同的成员
struct stu
{
int num;
char name;
int age;
char add[30];
};
struct stu zhangsan,lisi,wangwu;
注:1.定义结构体类型时,不分配空间
2.定义结构体变量后,才能分配空间
1.2在定义结构体类型时顺便定义结构体变量,以后还可以定义结构体变量
定义结构体类型+结构体变量
struct --结构体类型名–
{
成员列表;
}结构体变量1,结构体变量2;
再次定义结构体变量
struct --结构体类型名-- 结构体变量3,结构变量4;
定义的四个变量中每个变量都有相同的成员;
注意:一般结构体类型都会i定义在全局,也就时main的外面
1.3给数据类型取别名typedef;
typedef struct stu
{
int num;
char name[20];
int age;
}STU;
等价于:typedef struct stu STU;
### 1.4结构体嵌套
1.4结构体嵌套
typedef struct
{
int year;
int month;
int day;
}BD;
struct stu
{
int num;
char name[20];
int age;
BD bri;
};
1.5结构体指针
struct stu stu1;
struct stu *pstu;
pust=&stu;
1.6结构体数组的定义方法
struct stu
{
int id;
char name[20];
char sex;
}
struct stu edu[3];
1.6.1数组结构体的有引用
1.结构体数组元素引用,和数组方式一样数组名下标
2。结构体数组里面的元素的引用数组名的下标
1.7结构体变量做函数参数
1 .结构体变量的成员做函数参数-单项传递
struct stu_score
{
int id;
char name[20];
float score;
};
struct stu_score stu1={
.id=2001;
.name="teset";
.score=79;
};