C语言基础教程之结构体

C语言 结构体

更多C/C++资料下载,C/C++学习乐园:747821062


C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构体说的通俗一点就是给基本数据成员的一种封装,打包。数组是相同类型的数组,结构体可以是不同类型的数据组成的数组。

更多C/C++资料下载,C/C++学习乐园:747821062


定义结构体

为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

更多C/C++资料下载,C/C++学习乐园:747821062


sturctName: 是结构体名。

dataType:数据类型,int,char,float,double,甚至更复杂的

dataName:变量名

其他形态

1.没有结构体名,只有结构体变量。

2.与typedef的基情

更多C/C++资料下载,C/C++学习乐园:747821062

访问结构成员

结构体中的成员只能通过结构体变量去访问,就像男生只能去男厕所,女生去女厕所一样。为了访问结构的成员,我们使用成员访问运算符(.)。成员访问运算符是结构变量名称和我们要访问的结构成员之间的一个句号。您可以使用 struct 关键字来定义结构类型的变量。下面的实例演示了结构的用法:

主函数少了个返回值,手误,勿吐槽,心里明白就行。

结构体指针

更多C/C++资料下载,C/C++学习乐园:747821062  

您可以定义指向结构的指针,方式与定义指向其他类型变量的指针相似,如:struct Books *struct_pointer;现在,您可以在上述定义的指针变量中存储结构变量的地址。为了查找结构变量的地址,请把 & 运算符放在结构名称的前面,如:struct_pointer = &Book1;为了使用指向该结构的指针访问结构的成员,您必须使用 -> 运算符,如:struct_pointer->title;具体代码如下图所示:

结构作为函数参数

您可以把结构作为函数参数,传参方式与其他类型的变量或指针类似。

特殊结构体-位段(位域)

更多C/C++资料下载,C/C++学习乐园:747821062

位域:位域在本质上就是一种结构类型,不过其成员是按二进位分配的。

有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有 0 和 1 两种状态,用 1 位二进位即可。为了节省存储空间,并使处理简便,C 语言又提供了一种数据结构,称为"位域"或"位段"。

所谓"位域"是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。

典型的实例:

用 1 位二进位存放一个开关量时,只有 0 和 1 两种状态。

读取外部文件格式——可以读取非标准的文件格式。例如:9 位的整数。

1.定义语法

2.案列

更多C/C++资料下载,C/C++学习乐园:747821062

说明 data 为 bs 变量,共占两个字节。其中位域 a 占 8 位,位域 b 占 2 位,位域 c 占 6 位。

3.位段注意点

一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始。

由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过8位二进位。如果最大长度大于计算机的整数字长,一些编译器可能会允许域的内存重叠,另外一些编译器可能会把大于一个域的部分存储在下一个字中。

位域可以是无名位域,这时它只用来作填充或调整位置。无名的位域是不能使用的。

使用方式上和结构体一样,就不过分举例说明了,好了今天的基础教程就到这里。快来夸赞下自己吧。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 谨记 什么是价值?或许没有多少人能够明白,其实价值并不是实际存在的,它应该是一种体现,比如为城市点缀最美好的一面而...
    长风留言阅读 7,323评论 0 15
  • 结构体概述1.1 概念:有时需要将不同类型的数据组合成一个有机的整体,以便于引用。因此C语言采用结构体形式将不同类...
    Eric_Hunter阅读 4,919评论 0 0
  • 说实话,我并不喜欢这部剧里的女主角,我觉得她就像一头母狼,精明,霸气,自私,势力,但是聪明,有正义感,对男人而言...
    燚月仁心阅读 2,784评论 0 0
  • 最近有朋友问我:写作到底有什么用? 仔细一想,从经济收益方面讲,我的写作没有用,我的简书身份才刚刚开始,文章也只有...
    每日一智阅读 3,030评论 6 5
  • 次日清晨,红日刚出,一切都是雾蒙蒙的。 踏雪阁三层便是齐御风的寝室,此时却被敲了门。 “是谁啊?”齐御风正在梳妆台...
    玄冰星爵阅读 3,715评论 0 0

友情链接更多精彩内容