C语言结构体

 

结构体的概念

       前面的教程中我们讲解了变量和数组(array),变量是单独的一个一个的定义,数组是一组具有相同类型的变量的集合。但在实际的工作和生活中,我们往往还需要一组类型不同的数据,例如超女基本信息,姓名为字符串,身高和年龄为整数,身材和颜值为字符串,因为各种信息的数据类型不同,不能用一个数组来存放。

       如果某对象的信息有100个属性,并且每个属性的数据类型不同,就要定义100个变量,对100个变量初始化,把100个变量作为函数的参数传递,太麻烦了。

       在C语言中,使用结构体(struct)来存放一组不同类型的数据。结构体的定义形式为:

      

       结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(member)。以超女为例:

      

       结构体成员的定义方式与变量和数组的定义方式相同。

       注意大括号}后面的分号;不能少,这是一条完整的语句。

       结构体是一种程序员自己定义的数据类型,可以包含多个其他类型的数据,可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。

结构体变量

       结构体是一种程序员自定义的数据类型,是模板,可以用它来定义变量。例如:

              struct st_girl queen, princess, waiting, workers;

       定义了四个结构体变量,queen王后、princess王妃,waiting宫女和workers杂役。

占用内存的情况

       理论上讲结构体的各个成员在内存中是连续存储的,和数组非常类似,但是,结果体的占用内存的总大小不一定等于全部成员变量占用内存大小的和。在编译器的具体实现中,为了提高内存寻址的效率,各个成员之间可能会存在缝隙。

       用sizeof可以得到结构体占用内容在总大小。

       sizeof(struct st_girl); 或 sizeof(queen); 都可以。

       示例(book90.c)

      

       

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值