水军大提督 发表于 2024-6-14 23:16:07

C语言学习条记之结构体(一)

目录
什么是结构体?
结构体的声明
结构体变量的定义和初始化
结构体成员的访问
结构体传参

什么是结构体?

           在实际生活中的很多事物无法用单一范例的变量就能描述清楚,如:描述一个门生,需要姓名,年事,性别,学号等。因此,我们需要一种范例能够描述这种复杂的事物,这种范例就是结构体。
        结构体是一种构造(自定义)范例,是一些值的集合,这些值称为成员变量。这些成员变量可以是相同的范例,也可以是差别的范例(可以是变量、数组、指针,甚至是其他结构体)。
结构体的声明

struct tag
{
member-list;
}; 声明一个描述门生的结构体:
https://img-blog.csdnimg.cn/direct/208ee70f5da1498c8fc3a432411b80c8.png
结构体变量的定义和初始化

1.在结构体声明的同时定义和初始化:
https://img-blog.csdnimg.cn/direct/d70868765b5444f7bbf2fd31687597f0.png
https://img-blog.csdnimg.cn/direct/4fc695f58d96486e817eb1764193e94c.png
2.声明后再定义和初始化:
https://img-blog.csdnimg.cn/direct/6f7f4d9b3c53415ea205a29449292535.png
3.不按成员变量的次序初始化:
https://img-blog.csdnimg.cn/direct/7ed86ff86dd44438ad9866dc2ed71023.png
嵌套结构体的定义和初始化:
https://img-blog.csdnimg.cn/direct/5fd6759fe3214f72842c757bc1044cdd.png
使用typedef对结构体范例重命名后不能声明的同时定义和初始化:
https://img-blog.csdnimg.cn/direct/3b6db3e9262d4621bd7cdadbe261ff06.png
结构体成员的访问

           结构体的成员变量可以通过利用符 . 和 -> 来访问。
结构体.成员变量:
https://img-blog.csdnimg.cn/direct/daf515de2b2c41daa3d8936e170368ba.png
结构体指针(地点)-> 成员变量:
https://img-blog.csdnimg.cn/direct/93ca2d33294b4431b83e65817bdc6d05.png
结构体传参

           结构体传参和普通变量传参一样有传值调用和传址调用两种方式。
传值调用(形参是实参的一份临时拷贝,形参改变不影响实参):
https://img-blog.csdnimg.cn/direct/890643aee3ea457cb9b338a53a209907.png
传址调用:
https://img-blog.csdnimg.cn/direct/610f60008a774e0088837e6e74fc0857.png
           哪种传参方式更好?
        函数传参的时间,参数是需要压栈的。如果传递一个结构体对象的时间,结构体过大,参数压栈的的系统开销比较大,就会导致斲丧更多的内存和性能的下降。因此,除非业务特殊需要,传参时传结构体地点更优。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: C语言学习条记之结构体(一)