《C游记》 番外篇(贰)结构思维禅性稳 四众皆倡结构体

简介: 《C游记》 番外篇(贰)结构思维禅性稳 四众皆倡结构体

11.gif

目录

(壹) 结构体的声明

🦄 1.1 结构体的基础知识

🦄 1.2 结构的声明

🦄 1.3 结构成员的类型

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

(叁) 结构体成员的访问

(肆) 结构体传参


✅《C游记》 专栏 ✅  《小玄的C游之旅》


(壹) 结构体的声明

🦄 1.1 结构体的基础知识

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

       在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量指针数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问


       在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。

       结构体在函数中的作用不是简便,其最主要的作用就是封装封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。

       总而言之,结构体的出现可以帮助我们更好地去描述一个复杂对象。


🦄 1.2 结构的声明1.png


例如,描述一个学生:

2.png


🦄 1.3 结构成员的类型

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

       结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表等。

3.png


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

4.png5.png



6.png


7.png


8.png2.gif

(叁)结构体成员的访问

       结构体变量访问成员 结构变量的成员是通过  点操作符(.) 访问的。点操作符接受两个操作数。 例如:9.png我们可以看到  s 有成员   name  和  age  ; 那我们如何访问s的成员? 10.png


结构体指针访问指向变量的成员 有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针。那该如何访问成员?

如下:

11.png


(肆) 结构体传参

直接上代码,大家判断一下下面的  print1  和  print2  函数哪个好些?111.png


112.png简单来说:一个是传值调用(1),一个是传址调用(2)

这样可以避免重复生成大块的结构体空间,提高效率


结论: 结构体传参的时候,要传结构体的地址。6.gif7.gif

目录
相关文章
|
Ubuntu Java
百度搜索:蓝易云【Ubuntu22系统安装OpenJDK详细教程。】
现在,你已经成功在Ubuntu 22系统上安装了OpenJDK。你可以使用Java命令执行Java程序,并进行Java开发。
306 0
|
开发工具 git C++
【git 实用指南】git下载、拉取 代码
【git 实用指南】git下载、拉取 代码
3097 2
c++primer Plus 6 的课后题(第三章3.6)
c++primer Plus 6 的课后题(第三章3.6)
127 2
|
设计模式 算法 测试技术
信管知识梳理(三)软件工程相关知识
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生成率、提高软件质量、降低软件成本。
239 1
信管知识梳理(三)软件工程相关知识
|
XML 存储 JSON
【工作中问题解决实践 四】动态解析Json结构最佳实践(下)
【工作中问题解决实践 四】动态解析Json结构最佳实践(下)
362 0
|
机器学习/深度学习 分布式计算 并行计算
单机超越分布式?!强化学习新姿势,并行环境模拟器EnvPool实现速度成本双赢
单机超越分布式?!强化学习新姿势,并行环境模拟器EnvPool实现速度成本双赢
415 0
|
NoSQL Redis
C 程序 redis环境配置 访问Redis(二)
接上一篇继续给大家分享
202 0
C 程序 redis环境配置 访问Redis(二)
Google Earth Engine——世界人口数据集描述了2010年、2015年和其他年份居住在每个网格单元的估计人数。
Google Earth Engine——世界人口数据集描述了2010年、2015年和其他年份居住在每个网格单元的估计人数。
271 0
Google Earth Engine——世界人口数据集描述了2010年、2015年和其他年份居住在每个网格单元的估计人数。
|
Linux 网络安全 数据安全/隐私保护
linux的远程管理
linux的远程管理
201 0