结构体
用于描述复杂数据的一种数据类型。属于构造类型(用户自定义类型)。
定义类型语法
struct 结构体名(结构体类型名)
{
成员列表
};
struct:关键字,表示在构造一个结构体的类型
结构体名:一个名称,用来描述结构体这个类型
成员列表:用来描述复杂数据中用到的的成员变量,多成员间用分号隔开
末尾使用分号作为结束
struct student
{
int tno;
char name[30];
char gender;
int age;
}; //定义出一个数据类型
定义结构体数据类型可以用来定义变量、数组、指针。
定义变量语法
struct+结构体名整体作为数据类型
struct student s;
变量初始化语法
根据各个成员变量类型和顺序,依次初始化。
struct student s = {"jason",1473,93.8,"m"};
结构体类型引用
结构体成员运算符:“ . ”
使用方法:结构体变量名 . 成员名。表示访问结构体的成员。
int num = s.sno; //访问结构体s中的成员sno
struct student s = {1221,"小明",'1',55};
printf("tno\t:%d\n",s.tno);
printf("name\t:%s\n",s.name);
printf("gender\t:%c\n",s.gender);
printf("age\t:%d\n",s.age);
运行结果:
tno :1221
name :小明
gender :1
age :55
结构体数组
用于保存结构体的数组
定义语法
struct student s[3] = {{1234,"叶爱民",'1',28},{1235,"马画龙",'1',31},{1236,"博七七",'1',33}};
struct student s[3] = {1234,"叶爱民",'1',28,1235,"马画龙",'1',31,1236,"博七七",'1',33};
结构体的数据输入和访问一般通过指针来操作。为方便运算,使用指向结构体成员运算符“ -> ”
scanf("%d",(*s).age);
scanf("%d",*s->age);
需要使用结构体指针指向具体成员时,使用" . " 运算,需要使用成员内容时,使用" -> "运算。