前言:
1、结构体的声明
1.1 结构的基础知识
1.2结构体的声明
我们来描述一个小学生:
struct stu
{
char name[20];//小学生名字
int age;//年龄
double score;//考试分数
};//分号不能少
1.3 结构成员的类型
1.4 结构体变量的定义和初始化
有了结构体类型以后,那如何定义变量,其实很简单。
struct stu
{
char name[20];//小学生名字
int age;//年龄
double score;//考试分数
}p1;//声明结构体的同时,定义变量p1
struct stu p2;定义结构体变量p2
2. 结构体成员的访问
#include <stdio.h>
struct stu
{
char name[20];
int age;
double score;
};
int main()
{
struct stu s={"张三",20,89.5};
printf("%s %d %lf\n",s.name,s.age,s.score);
struct stu * p = &s;
printf("%s %d %lf\n",(*p).name,(*p).age,(*p).score);
printf("%s %d %lf\n",p->name,p->age,p->score);
return 0;
}
1.我们可以直接通过(.)运算符来实现对结构体成员的访问
struct stu s={"张三",20,89.5};
printf("%s %d %lf\n",s.name,s.age,s.score);
2.我们可以通过使用指针p使其指向s的地址,而做到间接访问,不过这样会显得更加麻烦,一般不使用。
struct stu * p = &s;
printf("%s %d %lf\n",(*p).name,(*p).age,(*p).score);
3.我们可以通过使用 -> 操作符,使指针直接指向结构体内部成员。
struct stu * p = &s;
printf("%s %d %lf\n",p->name,p->age,p->score);
3. 结构体传参
结论:结构体传参的时候,要传结构体的地址