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

打印 上一主题 下一主题

主题 531|帖子 531|积分 1593

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


什么是结构体?

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

  1. struct tag
  2. {
  3. member-list;
  4. };
复制代码
声明一个描述门生的结构体:

结构体变量的定义和初始化

1.在结构体声明的同时定义和初始化:


2.声明后再定义和初始化:

3.不按成员变量的次序初始化:

嵌套结构体的定义和初始化:

使用typedef对结构体范例重命名后不能声明的同时定义和初始化

结构体成员的访问

           结构体的成员变量可以通过利用符 . -> 来访问。
  结构体.成员变量:

结构体指针(地点)-> 成员变量:

结构体传参

           结构体传参和普通变量传参一样有传值调用传址调用两种方式。
  传值调用(形参是实参的一份临时拷贝,形参改变不影响实参):

传址调用:

           哪种传参方式更好?
          函数传参的时间,参数是需要压栈的。如果传递一个结构体对象的时间,结构体过大,参数压栈的的系统开销比较大,就会导致斲丧更多的内存和性能的下降。因此,除非业务特殊需要,传参时传结构体地点更优。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表