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

C语言程序设计-结构体类型定义

时间:2023-10-29 理论教育 版权反馈
【摘要】:声明一个结构体类型的一般形式为:struct结构体名{成员表列};成员表列由若干个成员组成,每个成员都是该结构体的一个组成部分。对每个成员也必须作类型说明,其形式为:类型名 成员名;需要注意:结构体类型的名字是由关键字struct和结构体名组成的。结构体名是自定义的,以便于区别其他结构体类型。结构体声明之后,就可进行变量定义。在声明中,成员也可以属于另一个结构体类型。

C语言程序设计-结构体类型定义

在解决实际问题时,往往需要同时定义一组数据,例如,在学生管理系统中,一个学生的信息包括学号、姓名、性别、年龄、成绩、家庭地址等项。可以看出这组数据是同属于一人,但它们具有不同的数据类型。学号可定义为整型字符型,姓名应为字符型,性别应为字符型,年龄应为整型,成绩可为整型或浮点型,家庭地址应为字符型。这组数据不能用一个数组来存放,因为数组中各元素的类型和长度都必须一致。若通过定义多个变量来表示,则无法体现其内在联系,为了解决这个问题,C语言提供一种可以将不同类型数据组合在一起的数据类型,称为结构体(structure),它相当于其他高级语言中的记录(record)。

结构体是一种构造类型,在使用之前必须先声明它,也就是构造它,如同在使用函数之前要先声明函数一样。声明一个结构体类型的一般形式为:

struct结构体名

{成员表列};

成员表列由若干个成员组成,每个成员都是该结构体的一个组成部分。对每个成员也必须作类型说明,其形式为:

类型名 成员名;

需要注意:结构体类型的名字是由关键字struct和结构体名组成的。结构体名是自定义的,以便于区别其他结构体类型。成员表列花括号后的分号是必不可少的。成员名的命名规则与变量名相同。结构体声明之后,就可进行变量定义。

例如:

struct Student

 int num;

 char name[20];

 char sex;

 int age;

 float score;

 char addr[30];

};

需要注意:在这个结构体声明中,结构体名为Student,该结构体由6个成员组成。第1个成员名为num,整型变量;第2个成员名为name,字符数组;第3个成员名为sex,字符型变量;第4个成员们名为age,整型变量;第5个成员名为score,浮点型变量;第6个成员名为addr,字符数组。在这个例子当中,每一个成员都是一个基本数据类型。在声明中,成员也可以属于另一个结构体类型。

例如:(www.xing528.com)

struct Date

 int month;

 int day;

 int year;

};

struct Student

 int num;

 char name[20];

 char sex;

 int age;

 struct Date birthday;

 char addr[30];

};

图8.1 结构体嵌套示例图

struct Date是一个代表日期的结构体类型,包含3个成员:month、day、year。在声明struct Student类型时,将成员birthday指定为struct Date类型。struct Date与其他基本类型一样可以用来声明成员的类型。

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

我要反馈