《C语言参悟之旅》新鲜试读(连载1)

 9 结构体与共用体

C语言的数据类型丰富,除了提供基本数据类型(如整形、实型、字符型等数据类型)外,还提供了一些构造类型。构造类型包括前面介绍的数组类型,以及本章将要介绍的结构体类型和共用体类型。另外,有一种基本类型--枚举类型,因使用形式类似于构造类型,也将在本章中予以介绍。

    虽然C语言的数据类型已经相当丰富,但有时并不能满足编程的需要,所以C语言还提供了用户自定义类型,从而使数据类型更加丰富多彩。本章也将对用户自定义类型进行介绍。 

9.1  结构体

数组只能存储一种数据类型,如果要处理的数据中包含多种数据类型,数组就“无能为力”了,从而引出了一种新的数据类型——结构体(struct)。

本节从结构体的概念入手,详细介绍结构体变量的定义、引用、初始化、结构体数组、结构体型指针、结构体和函数,以及位域。

9.1.1   什么是结构体

现实生活中,一个事物往往具有多个属性。例如,一辆汽车的基本信息包括汽车品牌(字符型),车型(字符型),马力(整型)等。一个班级中学生基本信息包括学号(整型)、姓名(字符型)、性别(字符型)、年龄(整型)、班级(字符型)、成绩(整型或者浮点型)等。显然不能用数组来表示这些数据,因为数组的元素类型必须是一致的。在此情况下,可以使用C语言提供的结构体数据类型,使得管理数据更加方便,而且还便于数据的封装与隐藏。

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,简称结构。在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。在C语言中,结构体中不能包含函数类型。

结构体定义的一般形式为:

   struct  结构体类型名

   {

数据类型  成员1;

      数据类型  成员2;

     

      数据类型  成员N;

   };

其中,struct为关键字,结构体类型名是用户定义的合法C语言标识符,{ }中是组成该结构体的成员。成员的数据类型可以是C语言所允许的任何数据类型(除函数类型)。

9.1.2   结构体实例——《水浒传》中的一百单八将

现实生活中可以用结构体表示的事物比比皆是,例如,我国四大名著之一——《水浒传》,其中包括性格各异的108个人物,如果现在要使用一种C语言的数据类型表示这些人物,结构体无疑是最佳选择。下面用一个名为hero的结构体来对其进行表示:

   struct  hero

   {

int number;            //排名

char sex;              //性别

char star_name[20];     //星名

char name[20];          //名称

char nickname[20];      //绰号

char position[20];      //职业

char weapon[20];        //使用武器

   };

这个结构体如图9.1所示(括号中表示此结构体类型变量可能的取值):

                                                                             

                          图9.1 结构体hero

 

 

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值