结构体类型是有一系列相同类型或不同类型的数据构成的数据集合,结构体中的数据在逻辑上相互关联。
定义结构体类型的一般语句形式如下:
struct 结构体类型名
{
数据类型 成员名1;
数据类型 成员名2;
……
数据类型 成员名n;
};
一、定义结构体类型变量
㈠先定义结构体类型再定义变量
struct 结构体类型名
{
成员表列;
};
结构体类型名 变量名表列;
或
struct 结构体类型名 变量名表列;
㈡定义结构体类型的同时定义变量
struct 结构体类型名
{
成员表列;
}变量名表列;
㈢直接定义结构体类型变量
struct
{
成员表列;
}变量名表列;
注意:
- 结构体类型与结构体变量是不同的概念。结构体类型是对一种数据类型的结构描述。其作用仅仅是规定了该数据性质和相应变量应占用内存的大小,在编译时,并不占用内存空间。结构体变量定义后将占用实际内存空间。
- 结构体中的每个成员,可以单独使用,它的作用与地位先当与普通变量。
- 结构体中的成员可以是另外一个已定义的结构体类型变量
㈣结构体变量初始化
结构体变量的初始化是指在定义结构体类型变量的同时,给每个结构体成员赋初值。
语法形式为:
结构体类型名 结构体变量名 = {初始数据};
其中,初始数据的个数、顺序和类型均应与定义结构体时结构成员的个数、顺序、和类型保持一致。
二、结构体变量成员的引用。
一般不能直接引用结构体变量,只能对结构体中各个成员分别进行引用。
结构体变量成员的引用格式如下:
结构体变量名.成员名
其中的“.”称为成员运算符(或成员选择运算符),用于引用结构体变量中的某个成员,其运算级别是最高的。
注意:
- 通常情况下,队结构体变量的成员可以像普通变量一样进行各种运算。
- 如果成员本身又是另一个结构体类型,可采用由外向内多层的“.”操作,直到所引用的最低一级的结构体成员,只能对最低级的成员进行赋值,输出或其它运算。
- 可以引用结构体成员的地址,也可以引用结构体变量的地址。