2.8 结构体struct的使用
结构体可以将若干个不同类型的变量和数组封装在一起 ,方便存储一些复合数据。
2.8.1结构体的定义
定义一个结构体的基本格式如下:
struct Name{
//一些基本的数据结构或者自定义的数据类型
};
例如,存储一个学生的学号、姓名、性别和专业:
struct studentInfo{
int id;
char name[20];
char gender;//'F' or 'M'
char major[100];
}Bob,Alice,stu[1000];
其中studentInfo是这个结构体变量的类型名,内部定义了id(学号)、name(姓名)、gender(性别)、major(专业),这些就是单个学生的信息。而在大括号外定义了studentInfo型的Bob和Alice代表两个结构体变量,之后的stu[1000]就是当有很多学生需要定义时的一个结构体数组。
结构体变量和数组除了可以跟在大括号外定义外,也可以按照基本数据类型那样定义。如:
studentInfo Bob;
studentInfo stu[1000];
注意:结构体里面可以定义除了自己本身之外的任何数据类型,不过虽然不能定义自己本身,但可以定义自身类型的指针变量。如:
struct node{
node n;//不能定义node型变量
node* n;//可以定义node*型指针变量
}
2.8.2 访问结构体内的元素
访问结构体内的元素有两种方法:" . “操作和” -> "操作。如:
#include<stdio.h>
/*定义一个结构体studentInfo存储学生信息
id(学号)、name(姓名)、指针next用于指向下一个学生的地址
分别定义了一个结