1.结构体类型的设计
C语言提供了基本的数据类型,如char,short,int,longlong,float,double等类型
我们称之为内置类型。但在程序的开发及其他使用中,这些类型是不足够的,所以程序开发人员会使用结构体来封装一些属性,设计出新的类型,在C语言中称之为结构体类型。
结构体是一种由程序员自己设计的数据类型。
我们一般使用结构体(struct)来存放一组同类型的数据。
结构体的定义形式为:
struct 结构名
{
成员列表(可以是基本数据类型,指针,数组或其他结构体)
};
eg.设计一个学生结构体
学生可以用学号(字符串表示),学生姓名(字符串表示),性别(字符串表示)年龄(int型)。在这里我们用四个数据成员两个数据类型组成一个表示学生的结构体来描述学生。
struct Student
{
char s_id[8];
char s_name[20];
char s_sex[6];
int s_age;
};
struct 是数据类型说明符,指出下面说明的是结构体 struct后面跟的 Student是结构体的类型名
{};大括号中引的是结构体类型的成员,尤其注意后括号结尾有个分号。
函数体在结构上与结构体的区别就是在函数定义的大括号后面没有分号,而结构体后面有。
2.结构体变量的初始化
struct Student
{
char s_id[10];
char s_name[20];
char s_sex[6];
int s_age;
};
int main(){
struct Student stud = {"20230101","zhangsan","man",20};
return 0;
}
这种就是最简单的初始化结构体.
更复杂的还可以进行结构体的嵌套
eg.
struct Date{
int year;
int month;
int day;
};
struct Student{
char name[20];
char sex[6];
Date birthday;
};
int main(){
struct Student stud2 = {"lisi","man",{2001,12,12}};
return 0;
3.结构体的访问
在定义好了结构体后,我们需要对结构体中定义的变量进行访问,需要应用到点(.)访问
eg.访问上面学生结构体的名字时,可以用 stud2.name 来说明我们要访问的对象是stud2这个结构体中的name,如果我们想保存这个访问的对象,就一定要用与它同类型的变量来进行接收。
注:对结构体变量整体赋值一共有三种情况
1.定义结构体变量(即用{}来进行初始化)
2.用一定义的结构体变量初始化
3.结构体类型相同的变量可以作为整体互相复制