我们知道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结构体类型,形成了结构体的嵌套。
通常使用嵌套结构类型时,建议采用第二种形式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。