结构体的定义和使用
结构体的定义
结构体(struct)是具有相同或不同类型的数据组成的组合型的数据结构。
声明结构体的一般形式为:
struct 结构体名{成员列表};
例如:
struct Student{
int num;//学号为整型(成员变量)
char name[20];//姓名为字符串
char sex;//性别为字符型
int age;//年龄为整型
float score;//成绩为浮点型
};//注意最后有一个分号
注意:结构体的成员可以是另一个结构体类型。例如:
struct Date//声明一个结构体类型 struct Data
{
int month;
int day;
int year;
};
struct Student{
int num;
char name[20];
char sex;
int age;
float score;
struct Date birthday;//成员birthday属于struct Date类型
};
定义结构体类型变量
定义了结构体类型,就相当于定义了一个模型没有定义模型里的数据,所以系统也不会对结构体进行分配存储单元。可以采用以下三种方式进行定义结构体类型变量。
方法1.先声明结构体的类型,再定义该类型的变量
struct Date{
int year;
int month;
int day;
};
//定义结构体变量
struct Date time;
方法2.声明结构体的同时定义结构体变量
struct Date{
int year;
int month;
int day;
}time;
这就相当于将方法一中的两步合并一步:先定义结构体 struct Date,再定义变量 time。
方法3.不指定类型名而直接定义结构体类型变量
struct{
int year;
int month;
int day;
}time;
结构体变量的初始化和使用
1.可以对结构体成员初始化赋值:
struct Date{
int year;
int month;
int day;
}time={2023,10,19};
2.可以引用结构体变量中成员的值,引用方式为:
结构体变量名.成员名
例如:在已经定义了time为Date类型的结构体变量,则time.year表示time变量中的year成员。在程序中也可以对变量的成员进行赋值,例如:
time.year=2023;
结构体使用数组
定义结构体数组的一般形式为:
①struct 结构体名{成员列表}数组名[数组长度];
②先声明一个结构体类型,然后再此类型定义结构体数组
结构体类型 数组名[数组长度];
结构体指针
只想结构体对象的指针变量既可以指向结构体变量,也可以指向结构体数组中的元素。指针变量的基类型必须和结构体变量的类型相同。