《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

目录
相关文章
|
存储 编译器 C语言
【C++从0到王者】第二站:类和对象(上)
【C++从0到王者】第二站:类和对象(上)
34 0
|
7月前
|
C语言
每天一道C语言编程练习(5):尼科彻斯定理
每天一道C语言编程练习(5):尼科彻斯定理
53 0
|
7月前
|
存储 C++
【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)
【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)
|
架构师 大数据 项目管理
3000字,如何讲清楚专业知识? by彭文华
3000字,如何讲清楚专业知识? by彭文华
|
数据处理 C语言
总结谭老爷子的书上重点
函数是完成特定任务的独立模块,是C语言唯一的一种子程序结构,函数的目的通常是接收0个活多个数据(main),并返回0个或1个结果。
73 0
总结谭老爷子的书上重点
|
安全 Java 编译器
学妹不懂Java泛型,非让我写一篇给她看看(有图为证)
笔者有个学妹就遇到了相同的境遇,学弟被泛型搞得头晕目眩,搞不懂泛型是个啥玩意。天天用的泛型也不知道啥玩意(她可能都不知道她有没有用泛型)。立图为证!当然,笔者深度还欠缺,如果错误还请指正!
143 0
学妹不懂Java泛型,非让我写一篇给她看看(有图为证)
从编程的角度思考小学生趣味乐园
从编程的角度思考小学生趣味乐园
269 0
从编程的角度思考小学生趣味乐园
|
程序员 C语言
《C游记》 第叁章 - 一朝函数思习得 模块思维世间生(壹)
《C游记》 第叁章 - 一朝函数思习得 模块思维世间生(壹)
122 0
《C游记》 第叁章 - 一朝函数思习得 模块思维世间生(壹)
|
程序员 编译器 Python
《C游记》 第叁章 - 一朝函数思习得 模块思维世间生(贰)
《C游记》 第叁章 - 一朝函数思习得 模块思维世间生(贰)
121 0
《C游记》 第叁章 - 一朝函数思习得 模块思维世间生(贰)
|
存储 C++
《C游记》 第柒章 - 指针进阶内功锻 功成行满见真如(壹)
《C游记》 第柒章 - 指针进阶内功锻 功成行满见真如(壹)
109 0
《C游记》 第柒章 - 指针进阶内功锻 功成行满见真如(壹)
下一篇
DataWorks