定义一个结构就是命名一个结构并说明它的组 成情况。目的是让程序中的函数知道,存在这样的 种数据类型,可用它来定义与之相关的数据对象。 结构的一般定义形式为: struct结构类型名{ 数据类型1成员名1; 数据类型2成员名2 数据类型n成员名n
6 定义一个结构就是命名一个结构并说明它的组 成情况。目的是让程序中的函数知道,存在这样的 一种数据类型,可用它来定义与之相关的数据对象。 结构的一般定义形式为: struct 结构类型名{ 数据类型1 成员名1 ; 数据类型2 成员名2 ; ……… 数据类型n 成员名n ; } ;
其中 struct 指出一个结构定义的开始; 结构类型名 是对该结构类型的命名,按标识符的构成 规则确定; 一对括号中定义了组成该结构类型的诸成 员项,每个成员项由成员的名字、成员的 数据类型和一个分号组成。一个结构中成 员项的多少、顺序没有限制
7 其中: struct 指出一个结构定义的开始; 结构类型名 是对该结构类型的命名,按标识符的构成 规则确定; {…} 一对括号中定义了组成该结构类型的诸成 员项,每个成员项由成员的名字、成员的 数据类型和一个分号组成。一个结构中成 员项的多少、顺序没有限制
数据类型; 用来指出对应成员项的数据类型,它可以是 任何数据类型名: ■C中固有的那些数据类型说明符,如int、foat char、 double等; ■也可以是本程序中已经定义的另一个结构类型 名,因结构名是一种自定义数据类型名; 特别,“数据类型”还可以是本身的结构类型名 但其后的成员名只能是指针变量名,非指针变量 名是错误的
8 C中固有的那些数据类型说明符,如int、float、 char、double等; 也可以是本程序中已经定义的另一个结构类型 名,因结构名是一种自定义数据类型名; 特别, “数据类型i” 还可以是本身的结构类型名 , 但其后的成员名只能是指针变量名,非指针变量 名是错误的。 数据类型i 用来指出对应成员项的数据类型,它可以是 任何数据类型名:
成员名 按标识符组成规则确定。“成员名”和“结构 类型名”可与函数或程序中的其他对象名及其他结 构中的成员名相同,不产生矛盾。C编译程序总是 根据上、下文来区别它们。 结构定义形式是一个整体,在程序中是作为 个定义语句(声明语句)出现的。因此括住诸成员 项说明的一对大括号和最后的分号不能遗漏,否则 引起错误
9 按标识符组成规则确定。 “成员名i” 和 “结构 类型名” 可与函数或程序中的其他对象名及其他结 构中的成员名相同, 不产生矛盾。C编译程序总是 根据上、下文来区别它们。 成员名i 结构定义形式是一个整体,在程序中是作为一 个定义语句(声明语句) 出现的。因此括住诸成员 项说明的一对大括号和最后的分号不能遗漏,否则 引起错误
又因为它是一个声明语句,所以一个结构定义 可以在函数的内部和函数的外部进行。 最后必须强调,上述形式的结构定义仅是描述 了一个结构的组成情况,或者说只是定义了一种类 型为“结构类型名”的数据类型,c编译程序并不 给这样的定义分配对应的空间,因为它不是一个实 际的数据对象。 下面是一个结构定义的典型例子
10 又因为它是一个声明语句,所以一个结构定义 可以在函数的内部和函数的外部进行。 最后必须强调,上述形式的结构定义仅是描述 了一个结构的组成情况, 或者说只是定义了一种类 型为 “结构类型名”的数据类型,C编译程序并不 给这样的定义分配对应的空间,因为它不是一个实 际的数据对象。 下面是一个结构定义的典型例子