前言
一、结构体
1.结构体基本知识
结构体声明以及结构体变量
结构体使用:
struct Stu
{
//结构体成员
char name[20];
int age;
char sex[10];
float score;
};
int main()
{
struct Stu s1 = {"zhangsan", 20, "nan", 95.5f};
struct Stu s2 = { "旺财", 21, "保密", 59.5f };
printf("%s %d %s %.1f\n", s2.name, s2.age, s2.sex, s2.score);
return 0;
}
2.结构体嵌套使用
struct S
{
int a;
char c;
};
struct P
{
double d;
struct S s;
float f;
};
void Print1(struct P sp)
{
//结构体变量.成员
printf("%lf %d %c %f\n", sp.d, sp.s.a, sp.s.c, sp.f);
}
3.结构体指针
主函数中:Print2(&p);//传址调用
void Print2(struct P* p1)
{
printf("%lf %d %c %f\n", (*p1).d, (*p1).s.a, (*p1).s.c, (*p1).f);
//结构体指针->成员
printf("%lf %d %c %f\n", p1->d, p1->s.a, p1->s.c, p1->f);
}
注意:结构体传参,结构体传地址。传地址好!传参,其中参数需要压栈,如果结构体过大,会导致性能下降。