C语言——结构体
目录
一、结构体的基本概念
1.1 结构体的定义
1.2 结构体变量的声明
二、结构体成员的访问
三、结构体数组
四、结构体指针
一、结构体的基本概念
在 C 语言中,结构体(struct)是一种自定义数据类型,它允许将不同类型的数据项组合在一起,形成一个逻辑上的整体。结构体在处理复杂数据结构时非常有用,比如表示一个学生的信息、一个日期或者一个图形对象等。
1.1 结构体的定义
结构体的定义使用struct
关键字,其基本语法如下:
struct 结构体名 {数据类型 成员1;数据类型 成员2;// 更多成员...
};
例如,定义一个表示学生的结构体:
struct Student {char name[50];int age;float score;
};
1.2 结构体变量的声明
定义好结构体后,可以声明该结构体类型的变量。有两种常见的方式:
方式一:先定义结构体,再声明变量
struct Student stu1, stu2;
方式二:在定义结构体的同时声明变量
struct Student {char name[50];int age;float score;
} stu1, stu2;
二、结构体成员的访问
结构体成员通过点运算符(.
)来访问。例如:
#include <stdio.h>struct Student
{char name[50];int age;float score;
};int main()
{struct Student stu1;// 初始化结构体成员strcpy(stu1.name, "张三");stu1.age = 20;stu1.score = 85.5;// 访问并输出结构体成员printf("姓名: %s\n", stu1.name);printf("年龄: %d\n", stu1.age);printf("分数: %.1f\n", stu1.score);return 0;
}
注意:
1.结构体使用时分为两步:
step1.先定义出结构体类型
step2.通过类型定义出变量
2.相同类型的结构体变量之间可以相互赋值
3.结构体类型的形参一般设计为指针类型,原因是指针类型传参时大小固定;如果是结构体类型变量,变量的大小取决于结构体类型大小
三、结构体数组
结构体数组是由多个相同结构体类型的元素组成的数组。例如,定义一个包含多个学生信息的结构体数组:
struct Student students[3] = {{"张三", 20, 85.5},{"李四", 21, 90.0},{"王五", 19, 78.5}};
四、结构体指针
结构体指针是指向结构体变量的指针。
struct Student *p = &stu;
通过结构体指针访问成员有两种方式:
方式一:先解引用指针,再用点运算符
(*指针变量名).成员名
(*p).name
方式二:使用箭头运算符(->
)
指针变量名->成员名
p -> name