【C语言】结构体的作用
结构体的作用:
结构体和其他类型基础数据类型一样,例如 int 类型,char 类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。
在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。
结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。
结构体的大小与内存对齐:
结构体的大小不是结构体元素单纯相加就行的,因为我们现在主流的计算机使用的都是 32Bit 字长的 CPU,对这类型的 CPU 取 4 个字节的数要比取一个字节要高效,也更方便。所以在结构体中每个成员的首地址都是4的整数倍的话,取数据元素是就会相对更高效,这就是内存对齐的由来。
结构体成员的类型
结构体成员的类型,可以是变量,数组,指针,甚至是其它的结构体,这里就不每个去列举了。
结构体成员
- 结构体变量的访问成员,是通过操作符(.)访问的。
结构体(套娃‘doge’)
在结构体成员类型中我说了下,但有些小伙伴可能会有点不清楚,在这里我把代码给大家,注意: 在上面结构体我使用了红色字体所标注的.
结构体传参和传值
在结构体成员类型中我说了下,但有些小伙伴可能会有点不清楚,在这里我把代码给大家,注意: 在上面结构体我使用了红色字体所标注的.
结构体传参和传值
1.传参
注意,在print函数当中记得定义结构体关键字。
2.传址
注意:print2函数中打印的,-> (操作符)。在这里tmp2指针箭头指向对象的内容。
注→结构体指针实际上指向的就是结构体类型当中成员变量的地址。就一句话。
各位,这两个函数如果要选择一个的话,选择第2个。因为:
- 传参:如果当我们用实参传递给形参的话,其实就是一份临时拷贝。这样的话就要把所有的数据内存空间给再copy一份下去。放在其它的内存上,在这里我取名为tmp。就很简单就是例如,是200个字节那么你传的参数就也要两百个字节,这就会导致空间的一个浪费就会非常严重滴,同时你copy过去还需要一定的时间。
- 传址:这里我传过去的仅仅是地址(&),一个地址就是4字节(32位)8个字节(64位),注意这里是int类型的数据类型所以是4个字节以及32个比特位,用三十二位的二进制来进行表达。
如果要选择一种,我们尽可能的去选择传址,因为效率更高些,而且还可以省出一定内存空间,尤其是对大型项目的看法,两种我们就可以去选择传址。
结论:当结构体传参的时候要传入结构体的地址。
好,那么本篇博客就带大家如何去学习结构体初始了,那么觉得本篇博客对你起到帮助的话,记得给博主一个点赞,当然能三连我会更开心的。其实写博客也算是对以前的知识点的一个总结吧,加油。
- 点赞
- 收藏
- 关注作者
评论(0)