《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生万物 | 从浅入深理解指针【第二部分】(二)
C生万物 | 从浅入深理解指针【最后部分】(二)
C生万物 | 从浅入深理解指针【最后部分】(二)
|
4月前
|
编译器
C生万物 | 从浅入深理解指针【第二部分】(一)
C生万物 | 从浅入深理解指针【第二部分】 前言: 如果没有看过第一部分的话,推荐先看第一部分,然后再来看第二部分~~
|
2月前
|
存储 C++
【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)
【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)
|
4月前
|
机器学习/深度学习 安全 程序员
C生万物 | 从浅入深理解指针【第一部分】(二)
C生万物 | 从浅入深理解指针【第一部分】(二)
|
4月前
|
C语言 C++
C生万物 | 从浅入深理解指针【最后部分】(一)
C生万物 | 从浅入深理解指针【最后部分】(一)
|
4月前
|
存储 C语言 C++
C生万物 | 从浅入深理解指针【第一部分】(一)
C生万物 | 从浅入深理解指针【第一部分】
|
9月前
|
存储 C++
魔幻而精妙:探秘杨辉三角的奥秘
在这篇文章中,我们将深入研究题目 杨辉三角的内涵与解决方法。杨辉三角是数学领域的一颗璀璨明珠,通过对该问题的解析,笔者将揭示它独特的规律与生成方式。
71 0
|
9月前
|
架构师 大数据 项目管理
3000字,如何讲清楚专业知识? by彭文华
3000字,如何讲清楚专业知识? by彭文华
|
11月前
|
C语言
【C语言—零基础第九课】函数中的爱恨情仇
我们举个例子,你现在是老板你要求你的秘书去完成一项任务你可以给他说让他去做某一项任务,也可以不给他说让他去做某一项任务(暗示他)当然你得是老板。只要你是老板你就可以无限次的让秘书去做某一项任务,并且他没有怨言。
34 0