11.1.声明结构体语句的一般格式为:
struct 标识符{成员表列};
其中,成员表列为一组声明变量的语句,这些变量称作该结构体的成员,又称数据项、分量、域、字段等。语句结尾处的分号不可缺省,标识符可以省略,如果不省略标识符,则新增一个数据类型(名):
struct 标识符
11.2.定义结构体变量的一般格式为:
struct 标识符 变量表列;
也可在声明结构体的同时定义变量:
struct 标识符{成员表列}变量表列;
11.3.结构体变量可在定义时赋初值,类似于数组赋初值。
11.4.结构体变量的整体使用有以下四种:
(1)赋值:结构体变量=同类型结构体变量
(2)求存储量:sizeof(结构体变量)
(3)取地址:&结构体变量
(4)初始化——与数组初始化相似。
11.5.结构体中成员可作为普通变量使用,成员的访问格式为:
结构体变量名.成员名 或 结构体指针->成员名
11.6.结构体中的成员名只在该结构体类数据中有效,因此,不同结构体中的成员可以同名,成员名也可与普通变量同名。
11.7.结构体中的成员可以是指针,其基类型可是正在定义或尚未定义的结构体。
11.8.以同一类型结构体为元素的数组称作结构体数组,以结构体为基类型的指针称作结构体指针。结构体数组和指针的定义和使用与基本类型数组和指针相似。
11.9.共用体与结构体相似,主要区别有:
(1)定义共用体的保留字为union;
(2)同一共用体各成员的基址相同,访问成员时必须与最后所存数据的类型相同,共用体数据所占内存与其成员中所占内存最大者相同;
(3)不可初始化共用体变量。
11.10.读取共用体成员时,应按最后一次所存入成员的数据类型读取。
11.11.共用体和结构体的成员可以是已存在的共用体和结构体,但不可嵌套定义。
11.12.声明枚举类型语句的一般格式和功能为:
格式:enum 标识符{枚举元素列表}变量列表;
功能:
(1)显式或隐式指定所列枚举元素所代表的整数;
(2)如果不省略标识符,则定义一个枚举类型(名):
enum 标识符
枚举元素表是一组用逗号分隔的标识符或整数常量赋值表达式,第一个枚举元素的默认值为0,其它枚举元素的值为前者加1。
11.13.typedef语句的格式和功能为:
格式:typedef 数据类型名 别名1,…,别名n;
功能:给指定数据类型增加一组名称。
11.14.typedef语句也可在声明结构体、共用体、枚举类型的同时给它增加一组名称。