首页 理论教育 C语言结构体类型详解

C语言结构体类型详解

时间:2023-10-27 理论教育 版权反馈
【摘要】:C语言中给出了另一种属于构造类型的结构体类型。②成员列表是对结构类型中各成员组成的一个说明,每个成员名后的分号不能省略。

C语言结构体类型详解

我们知道C语言的基本数据类型有整型浮点型、字符型、双精度型。但是,在解决实际问题中,经常会遇到一组数据具有不同的数据类型。例如,学生记录包含学号、性别、姓名、年龄、电话号码等。C语言中给出了另一种属于构造类型的结构体类型(或结构类型)。该类型由若干“成员”组成,每一个成员可以是一个基本数据类型或者是一个结构类型。在说明和使用之前必须先定义它,也就是构造它。

1.结构体类型的定义

结构类型包括两部分,一是结构体标识名,二是结构成员。一般形式为:

成员列表由若干个成员组成,对每一个成员也必须做类型说明。其形式为:

类型说明符 结构成员名;//结构成员名,简称成员名

成员名的命名应符合标识符的书写规定,例如:

构造学生结构体,它包括学号、姓名、性别、成绩等信息。

在这个结构定义中,结构名为student,第一个成员num,为整型变量;第二个成员name,为字符数组;第三个成员sex,为字符变量;第四个成员score,为实型变量。

注意:

①在定义类型时,“struct”是定义结构类型的关键字,因此不能被省略。

②成员列表是对结构类型中各成员组成的一个说明,每个成员名后的分号不能省略。

③结构类型定义作为一条语句,其最后一个花括号外的分号不能省略。

2.结构体类型的变量、数组和指针变量的定义

结构变量说明,包括下面三种方法。

(1)先定义结构,然后说明结构变量。

例如:

说明了zhang和liu两个结构体变量为student结构类型。

(2)在定义结构类型的同时说明结构变量。(www.xing528.com)

例如:

定义student结构类型的同时,说明了zhang和liu两个变量为student结构类型。

(3)直接说明结构变量。

例如:

第三种方法与第二种方法的区别在于第三种方法中省略了结构名,而直接给出结构变量。

尽管这几种方法都可以使用,还是推荐使用第一种方式。先定义结构类型,再定义结构变量,程序的可读性更好。

既然自定义的结构类型和基本数据类型是一样的,因此也可以定义结构类型的指针、数组。

例如:

说明数组class为student结构类型,指针变量pstu1为student结构类型。

另外,在C语言程序设计中有时要用到结构类型的嵌套

嵌套结构类型的定义有以下两种形式。

形式一:

例如:

形式二:

例如:

首先定义一个结构体类型date,由year(年)、month(月)和day(日)3个成员组成,然后在定义结构体类型teacher时,其中的成员birthday被说明为date结构体类型,形成了结构体的嵌套。

通常使用嵌套结构类型时,建议采用第二种形式。

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

我要反馈