文章目录
前言
在C语言中,我们想存储多个数据时,往往联想到数组。但是数组有个显著的问题是它只能存储相同类型的数据,当我们想要描述一个对象的多维状态时,往往是不同类型的数控,例如学生档案的学号、姓名、年龄等。而这时我们可以使用结构体或联合体来存储数据。一、结构体
我们知道像字符型、整型、浮点型等基本数据类型都是C语言事先定义好的,而结构体作为一种用户自定义的数据类型,则必须“先定义后使用”,即我们首先需要构造一个结构体,才能使用它来定义变量和数组。
1.1结构体类型
结构体类型是一种数据类型,它可以由多种基本的数据类型组成,我们可以在构造结构体类型时可以根据我们的需要进行自定义。
C语言中定义结构体的语句为;
struct 结构体类型名
{
数据类型1 成员名1;
数据类型2 成员名2;
......
};
struct是C语言中的关键字,表明正在定义一个结构体,上图可以看出,结构体可以有若干个数据类型组成,以对于一个学生信息的描述为例,我们可以分为编号、姓名、成绩、生日来描述。
struct student
{
int num;
char name[8];
float ave;
struct data birthday;
};
struct data
{
int day;
int month;
int year;
};
备注:结构体可以嵌套
结构体如果在函数中定义,其作用范围仅限于函数内
1.2定义结构体变量
构造结构体并不分配内存,当结构体类型定义好后,我们就可以像使用int、char等基本数据类型一样来用结构体定义变量和数组。一共有三种方式来定义结构体变量。
1、定义结构体类型和变量分开
struct data
{
int day;
int month;
int year