首页 理论教育 C语言结构体类型定义教程

C语言结构体类型定义教程

时间:2023-10-23 理论教育 版权反馈
【摘要】:大括号外的分号不能省略,表示结构体类型说明的终止。在这个结构体类型定义中,结构体类型名为student_type,该结构体类型由4个成员组成。由此可见,结构体类型是一种复杂的数据类型,是数目固定、类型不同的若干有序变量的集合。表9-2结构体类型student_type的结构数据类型相同的成员,既可逐个、逐行分别定义,也可合并成一行定义。例如,上述日期结构体类型的定义可改写为如下形式。

C语言结构体类型定义教程

定义结构体类型的一般形式如下:

其中,struct是关键字,作为定义结构体数据类型的标志,其后面紧跟的是结构体类型名,由用户自行定义。大括号内是结构体的成员表列,其中说明了结构体所包含的成员及其数据类型。大括号外的分号不能省略,表示结构体类型说明的终止。

成员表列由若干个成员(也称为数据项或分量)组成,每个成员都是该结构体类型的一个组成部分。对每个成员也必须做类型说明,其形式如下:

类型说明符成员名;

成员名的命名方法应符合标识符的命名规定。

例如,对学生信息结构体类型的定义,假设学生信息的必要项目有学号(num)、姓名(name)、性别(sex)、成绩(score)等。

在这个结构体类型定义中,结构体类型名为student_type,该结构体类型由4个成员组成。第1个成员为num长整型变量;第2个成员为name字符数组;第3个成员为sex字符变量;第4个成员为score实型变量,定义结构体类型之后,即可进行变量说明。凡说明为结构体类型student_type的变量都由上述4个成员组成。

由此可见,结构体类型是一种复杂的数据类型,是数目固定、类型不同的若干有序变量的集合。

关于结构体类型有以下几点需要说明。(www.xing528.com)

(1)结构体类型中的成员,既可以是基本数据类型,也可以是另一个已经定义的结构类型。例如:

首先定义一个结构体类型date,它由month、day和year 3个成员组成。再定义结构体类型student_type,其中的成员birthday为结构体类型date,即成员birthday由month、day和year 3个成员组成。此时,结构体类型student_type的结构如表9-2所示。

表9-2 结构体类型student_type的结构

(2)数据类型相同的成员,既可逐个、逐行分别定义,也可合并成一行定义。例如,上述日期结构体类型的定义可改写为如下形式。

(3)结构体类型中的成员名,可以与程序中的变量同名,但它们代表的是不同的对象,互不影响。

(4)定义结构体类型可以在函数的内部进行,也可以在函数的外部进行。在函数内部定义的结构体,其作用域仅限于该函数内部,而在函数外部定义的结构体,其作用域是从定义处开始到本源程序文件结束。

总之,结构体类型的定义只是描述结构体类型数据的组织形式,它规定这个结构体类型使用内存的模式,并没有分配一段内存单元来存放各数据项成员。只有定义了这种类型的变量,系统才会为变量分配内存空间,占据存储单元

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈