《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

目录
相关文章
|
11天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
11天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
11天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之王道第2.3章节之线性表精题汇总二(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人之数据结构与算法系列学习×单双链表精题详解、数据结构、C++、排序算法、java 、动态规划 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
安全 Java 程序员
<<c和指针>>温故及问题研讨(第一章)
这个部分的分享主要是我在阅读<<C和指针>>这本书的过程发现的我以前遗漏或者没有记清楚的知识点,这本书内容很多,我只做我认为容易混淆或遗漏的部分的分享,有些我认为比较简单的地方会略掉,知识点可能比较杂,我尽量为大家理请逻辑.此书共十八章,也就代表这一部分的博客会有18篇,希望大家多多支持!
<<c和指针>>温故及问题研讨(第一章)
用试题这把“剑“帮你破除指针与数组之间的那些猫腻
用试题这把“剑“帮你破除指针与数组之间的那些猫腻
62 0
|
C语言
【C语言—零基础第九课】函数中的爱恨情仇
我们举个例子,你现在是老板你要求你的秘书去完成一项任务你可以给他说让他去做某一项任务,也可以不给他说让他去做某一项任务(暗示他)当然你得是老板。只要你是老板你就可以无限次的让秘书去做某一项任务,并且他没有怨言。
60 0
|
存储 编译器 程序员
<<c和指针>>温故及问题研讨(第三章)
这篇文章向大家分享<<C和指针>>第三章的内容–数据,这篇文章在专栏:书籍分享中,有兴趣阅读更多关于<<C和指针>>的朋友可以来浏览一下.和之前一样,我分享的内容是我认为容易被忽略的点,和C语言中更接近于底层的一些逻辑.有些内容我在C语言的学习中已经分享过了的,我会给出之前的博客链接并且跳过这一段.
|
算法 搜索推荐
三大基础排序算法——我欲修仙(功法篇)
三大基础排序算法——我欲修仙(功法篇)
157 0
|
数据处理 C语言
总结谭老爷子的书上重点
函数是完成特定任务的独立模块,是C语言唯一的一种子程序结构,函数的目的通常是接收0个活多个数据(main),并返回0个或1个结果。
69 0
总结谭老爷子的书上重点
下一篇
无影云桌面