当前位置: 首页 > news >正文

初识结构体

目录

结构体的声明

结构体的基础知识

结构体的声明

 结构体成员的类型

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

定义 

 初始化

 结构体成员的访问

结构体变量访问成员

结构体指针访问指向变量的成员

结构体传参

传地址

传结构体

结论


结构体的声明

结构体的基础知识

数组:一组相同类型元素的集合

结构体:一组不一定相同类型元素的集合

结构体的声明

 列如定义一个学生信息

  我们常见typedef开头的结构题,这是对结构体进行了重命名

定义结构体并不向内存申请空间,只有在使用的时候才向内存 ,就像做房子一样,只有在使用的时候才向内存申请空间

 结构体成员的类型

结构体的成员可以是标量,数组,指针,甚至是其他结构体

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

定义 

结构体的定义有两种方法,一一种是在声明类型的同时定义变量

另一种单独定义 

 初始化

定义变量的同时赋值,按结构体中类型顺序依次初始化

结构体包含结构体的初始化

 

 乱序初始化,需要用到 . 操作符

 结构体成员的访问

 结构体访问成员包括结构体变量访问成员和结构体指针访问成员

结构体变量访问成员

结构体变量的成员是通过操作符(.)访问的,点操作符有两个操作数

 对结构体中的字符数组赋值用strcpy函数

结构体指针访问指向变量的成员

有时候我们得到的不是结构体变量而是结构体指针

可以用->操作符

结构体传参

传地址

传结构体

 

 以上两种明显传地址更好,函数传参是需要压栈的,传结构体对象的话,如果结构体对象过大的话,参数压栈的系统开销较大,导致性能下降

数据拷贝浪费时间,浪费空间

结论

结构体传参的时候需要传结构体的地址

http://www.lryc.cn/news/70372.html

相关文章:

  • 协程并发下数据汇总:除了互斥锁,还有其他方式吗?
  • 5、Ray-Actor模型和并发编程
  • HNU-电路与电子学-小班2
  • 二分图匹配算法
  • 虹科技术 | 虹科EtherCAT增量编码器输入模块数据采集实操测试
  • 2023.05.21 学习周报
  • 资深程序员深度体验ChatGPT一周发现竟然....
  • 带你深入了解Android Handler的用法
  • 生于零售的亚马逊云科技,如何加速中国跨境电商企业出海?
  • 兄弟组件传值$on无法接收值
  • Spring事务及事务传播机制
  • npm i 常见问题
  • Prometheus+Grafana监控系统
  • 基于脉冲神经网络的物体检测
  • Rust每日一练(Leetday0010) 子串下标、两数相除、串联子串
  • As ccess 数据库与表的操作
  • 自动化的测试工具
  • Host头攻击
  • Android 12.0默认开启无障碍服务权限和打开默认apk无障碍服务
  • 怎么成为优秀的软件工程师,而不是优秀的码农?
  • 安装ElasticSearch之前的准备工作jdk的安装
  • 复杂数据集,召回、精度等突破方法记录【以电科院过检识别模型为参考】
  • 那些你不得不会的提高工作效率的软件神器
  • 【VMware】Ubunt 20.04时间设置
  • 单点登录三:添加RBAC权限校验模型功能理解及实现demo
  • 基于用户认证数据构建评估模型预测认证行为风险系统(附源码)
  • 本地训练中文LLaMA模型实战教程,民间羊驼模型,24G显存盘它!
  • 快速学Go依赖注入工具wire
  • python入门(4)流程控制语句
  • 【进阶】C 语言表驱动法编程原理与实践