1.结构体基本概念
C语言提供了众多的基本类型,但现实生活中的对象一般都不是单纯的整型、浮点型或字符串,而是这些基本类型的综合体。比如一个学生,典型地应该拥有学号(整型)、姓名(字符串)、分数(浮点型)、性别(枚举)等不同侧面的属性,这些所有的属性都不应该被拆分开来,而是应该组成一个整体,代表一个完整的学生。
在C语言中,可以使用结构体来将多种不同的数据类型组装起来,形成某种现实意义的自定义的变量类型。结构体本质上是一种自定义类型。
结构体的定义:
struct 结构体标签
{
成员1;
成员2;
...
};
- 语法:
- 结构体标签,用来区分各个不同的结构体。
- 成员,是包含在结构体内部的数据,可以是任意的数据类型。
- 示例:
// 定义了一种称为 struct node 的结构体类型
struct node
{
int a;
char b;
double c;
};
int main()
{
// 定义结构体变量
struct node n;
}
2.结构体初始化
结构体跟普通变量一样,涉及定义、初始化、赋值、取址、传值等等操作,这些操作绝大部分都跟普通变量别无二致,只有少数操作有些特殊性。这其实也是结构体这种组合类型的设计初衷,就是让开发者用起来比较顺手,不跟普通变量产生太多差异。
- 结构体的定义和初始化。
- 由于结构体内部拥有多个不同类型的成员,因此初始化采用与数组类似的列表方式。
- 结构体的初始化有两种方式:①普通初始化;②指定成员初始化。
- 为了能适应结构体类型的升级迭代,一般建议采用指定成员初始化。
- 示例:<