A08-C++结构体的定义以及使用
2021/7/31 17:07:55
本文主要是介绍A08-C++结构体的定义以及使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
8.1结构体概念
结构体就是用户自定义的数据类型,允许存储不同数据类型
8.2结构体的定义和使用
语法:struct 结构体{结构体成员列表}
结构体声明变量的三种方式,可见:
8.3结构体数组
作用:将自定义的结构体放入数组中,方便进行维护
结构体数组的声明方式,如下:
8.4结构体指针
作用:通过指针访问结构体中的成员
操作符:->
8.5结构体嵌套
作用:结构体中的成员可以定义另一结构体;
如何定义以及如何声明,见:
8.6结构体作参数向函数体传递
传递的方式有两种:值传递,地址传递
这一小节实际上就是将结构体和函数相结合起来,如果用函数来输出结构体是如何的形式,需要注意的仍然是值传递不改变实参的值,而地址传递会改变实参的值。
8.7结构体中 Const使用场景
首先我们利用正常的值传递,如下
但是我们要明确:值传递函数,往往会开辟出一群新的内存空间出来,用于重新传递,如果需要传递的数据量比较大的话,此时会占用较大的内存空间
所以我们习惯使用指针来,地址传递,但是地址传递在函数体中,如果赋值不恰当,会引起实参的改变,此时使用Const有利于稳定参数的传递。
如:此时由于const的定义,无法去改变实参的数值,否则会报错。
{案例:一个老师的结构体,包含一个学生的结构体,利用函数来生成老师姓名,学生姓名,学生成绩,最后利用函数输出}
解1:该解法是自己做的,想法是在主程序main()输入老师姓名,学生成绩,最后用于输出;
函数体用的是指针地址传输,可以直接改变结构体中的数据;
解2:标准答案,利用函数来直接生成数据,并且利用函数来输出。
细节1:不管是值传递还是地址传输,对于结构体而言是确确实实传输进去数据了的,所以两种方法都可以使用
细节2:在老师的结构体下直接用了数组,不用一个元素一个元素去敲;
细节3:自动生成老师姓名和学生姓名时,利用了字符尾号相加的方式
这篇关于A08-C++结构体的定义以及使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升