班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08

作业目标:作业目标:《C语言程序设计》第12章

作业正文:https://www.cnblogs.com/20221311fangyouchao/p/16930865.html

教材内容总结

C语言程序设计第12章:结构体和数据结构基础

①从基本数据类型到抽象数据类型:抽象数据类型(Abstract Data Type,ADT)是指这样一种数据类型,它不再单纯是一组值的集合,还包括作用在值集上的操作的集合,即在构造数据类型的基础上增加了对数据的操作,且类型的表示细节及操作的实现细节对外是不可见得。之所以说它是抽象的,是因为外部只知道它做什么,而不知道它如何做,更不知道数据的内部表示细节。这样,即使改变数据的表示和操作的实现,也不会影响程序的其他部分。抽象数据类型可达到更好的信息隐藏效果,因为它使程序不依赖于数据结构的具体实现方法,只要提供相同的操作,换用其他方法实现时,程序无需修改,这个特征对于系统的维护很有利。C++中的类(Class)是抽象数据类型的一种具体实现,也是面向对象(Object-Oriented)程序设计语言中的一个重要概念。从结构体过渡到类是顺其自然的事情,但是不能将C++看成是带类的C,因为它带来的是思考和解决问题角度的转变。不同于面向过程的程序设计,在面向对象程序设计中,程序员面对的不再是一个个函数和变量,而是一个个对象。每个对象包含两个部分:数据和方法,数据用来保存对象的属性,而方法用来完成对数据的操作。对象与对象之间是通过消息进行通信的。

②结构体:由一批数据组合而成的结构型数据。构体可以被声明为变量指针数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

③结构体数组的定义和初始化:C语⾔允许⽤户⾃⼰指定这样⼀种数据结构,它由不同类型的数据组合成⼀个整体,以便引⽤,这些组合在⼀个整体中的数据是互相联系的,这样的数据结构称为结构体,它相当于其它⾼级语⾔中记录。

④结构体指针的定义和初始化:结构体指针的大小就是指针的大小,是固定的,32位系统的指针大小是4字节,64位系统的指针大小是8字节,和结构体包含的类型及其排列方式没有关系。

⑤向函数传递结构体:一、传递结构成员
有时候我们并不需要对于结构体的全体成员进行访问,而只需要单个的或者个别几个的成员便足矣。这时候我们只需要将结构体的部分成员对函数及逆行传参即可。以下是实验代码

二、传递结构
当然,如果我不止是想调用单个成员,而是希望能够更加方便地对整个结构体进行操作,我们能不能将整个结构体都传入呢?
在现行的C语言标准下,是可以的!

三、传递结构的地址
那么有没有办法不用传那么大内存的结构体,同时也能对结构体本身的值进行修改呢?方法还是有的,那就是传递结构的地址,也就是将指向结构体的指针作为参数传入到函数当中,由于指针本身只占有4个字节,内存较小,同时也能对结构体本身进行修改。

  代码行数(新增/累计) 博客量(新增/累计) 学习时间(新增/累计) 重要成长
目标 3000行 20篇 150小时  
第十一周 400/400 1篇 22/22  
第十二周 400/400 1篇 23/25  
第十三周 450/450 1篇 20/28  
第十四周 0/450 0篇 0/28  
posted on 2022-11-27 22:36  20221311方有超  阅读(39)  评论(0编辑  收藏  举报