C语言的结构体与共用体

C语言的结构体与共用体
定义一个结构体的一般形式为:
struct 结构名
{
成员列表
};

成员列表由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,形式为:
类型说明符 成员名;
看一个例子:
C语言的结构体与共用体

C语言的结构体与共用体
定义结构类型变量有3种方法:
(1)先声明结构体类型再定义变量名
C语言的结构体与共用体
C语言的结构体与共用体
这种方法是先把结构类型定义了,然后再定义变量名,定义了student1和student2为struct student 类型的变量,即它们具有struct student类型的结构。

(2)在声明类型的同时定义变量这种形式的定义的一般形式为:
C语言的结构体与共用体
看例子:
C语言的结构体与共用体

(3)直接定义结构体类型变量,其一般形式为:
C语言的结构体与共用体
即不出现结构体名。结构体名是可有可无的!

结构体变量的引用
当引用结构体变量时,遵循一下规则:
(1)不能将一个结构体变量作为一个整体进行输入和输出。
C语言的结构体与共用体

正确引用结构体变量中成员的方式为:
结构体变量名.成员名
C语言的结构体与共用体
(2)如果成员本身又属于一个结构体类型,则要用若干个成员运算符,一级一级地找到最低地一级的成员。只能对最低级的成员进行赋值或存取以及运算。
C语言的结构体与共用体
(这里学生的生日birthday又是一个结构体,birthday结构体里面有year, month ,day)
(3)对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)
C语言的结构体与共用体
(4)可以引用结构体变量成员的地址,也可以引用结构体变量的地址。
C语言的结构体与共用体

结构体变量的初始化
看实例:
对boy2进行了初始化(看完后要知道结构体变量怎么进行初始化)
C语言的结构体与共用体

结构体数组
一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。

如果有10各学生的数据需要参加运算,显然应该用数组,这就是结构体数组。

结构体数组与之前说的数值型数组不同之处在于数组元素都是一个结构体类型的数据,它们都分别包括各个成员(分量)项。

定义结构体数组:
和定义结构体变量的方法相仿,只需要说明其为数组即可。如:
C语言的结构体与共用体
结构体数组的初始化
C语言的结构体与共用体
指向结构体类型数据的指针
结构指针变量说明的一般形式为:
*struct 结构名 结构指针变量名
C语言的结构体与共用体

赋值是把结构变量的首地址赋予该指针变量,不能把结构名赋予该指针变量。
C语言的结构体与共用体
C语言的结构体与共用体
C语言的结构体与共用体
明天开始结构体与共用体(3)