C语言 结构体
一、结构体的概念
数组只能构造具有相同类型的数据,而在实际应用中我们常常还需要一种类型不同的数据,如学生信息表,姓名为字符串,年龄为整数,成绩为小数等,虽然数据类型不同,但都是学生的信息数据,所以我们将这些数据存放在一起会更方便。在C语言中,可以使用结构体来存放一组不同类型的数据。
二、结构体与结构体变量的定义
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员,结构体的声明是使用struct关键字。
1、结构体的定义形式
如:
2、结构体变量的一般定义形式
如:
3、结构体变量的定义还能在定义结构体时同时定义
如:
4、对于无名结构体(结构体没有名字),结构体变量只能和结构体同时定义,之后也不能再用该结构体类型去定义变量
如:
三、结构体变量的赋值
对于结构体变量的赋值
1、可以在一般形式定义结构体变量时赋值
2、可以在定义结构体和结构体变量时整体赋值
3、可以在定义结构体变量后,对成员逐一赋值。
获取结构体成员的一般格式为: 结构体变量名.成员名
四、typedef的使用
1、使用关键字typedef可以为类型取一个新的别名
如:
2、使用typedef为结构体类型取别名
如:
在定义结构体时使用typedef的话,可以在创建别名的同时不给结构体命名
3、如果使用typedef对结构体类型取别名,就无法在定义结构体的同时定义结构体变量。但在定义结构体时使用typedef的话,后面定义结构体变量就可以直接用别名定义变量:别名 变量名
相比于没有别名时变量的定义: struct 结构体名 变量名
更加简练
如: