什么是结构
结论:
结构体,是将不同类型的数据存放在一起,作为一个整体进行处理,其最主要的作用就是封装(可以再次利用)(作用不是简便)
结构,也叫结构体,是一些值的集合,这些值称为成员变量
结构的每个成员可以是不同类型的变量
结构体和其他类型基础数据类型一样,例如int类型,char类型
只不过结构体可以做成你想要的数据类型
实际项目中常使用结构体来封装一些属性来组成新的类型
结构体声明
//示例 struct tag//首先使用关键字struct,表示接下来是一个结构体 //后面是一个可选的标志,用来引用该结构体的快速标记 { member-list;//成员列表 }variable-list;//创建变量列表
- 举例
//描述学生信息 typedef struct Stu//结构体名称 { char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号 }Stu;//分号不能丢 //声明类型的同时定义变量Stu
struct声明作用域
如果放在任何函数的外面,那么可选标记可以在本文件中,该声明的后面的所有函数都可以使用
如果声明在某个函数的内部,则它的标记只能在内部使用,并且在其声明之后
结构成员的类型
结构的成员可以是标量、数组、指针,甚至是其他结构体
结构体变量的定义和初始化
- 单一成员类型
struct Point { int x; int y; }p1; //声明类型的同时定义变量p1 struct Point p2; //定义结构体变量p2 //初始化:定义变量的同时赋初值。 struct Point p3 = {x, y};
- 复杂类型
struct Stu //类型声明 { char name[15];//名字 int age; //年龄 }; struct Stu s = {"zhangsan", 20};//初始化
- 嵌套类型
struct Node { int data; struct Point p; struct Node* next; }n1 = {10, {4,5}, NULL}; //结构体嵌套初始化 struct Node n2 = {20, {5, 6}, NULL};//结构体嵌套初始化