2022-2023-1 20221304 《计算机基础与程序设计》第十二周学习总结
作业信息
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP |
---|---|
这个作业要求在哪里 | https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12 |
这个作业的目标 | 自学教材《C语言程序设计》第11章并完成云班课测试 |
作业正文 | https://www.cnblogs.com/liu-221304-yi-tong/p/16907987.html |
教材学习内容总结
指针与一维数组间的关系,指针与二维数组间的关系。向函数传递一维数组和二维数组指针数组,命令行参数动态数组,动态内存分配
教材学习中的问题和解决过程
- 问题1:指针与一维数组间的关系?
- 问题1解决方案:数组名代表数组的首地址,其中,数组名a代表数组的首地址(即&a[0]),那么表达式a+i代表数组中下标为i元素a[i]的地址,即&a[i]。还可以通过使用间接寻址来引用数组元素。例如:(a+i)表示取出首地址元素后边第i个元素的内容,即下标为i的元素a[i]。此外,还可以通过一维数组的指针变量p来引用数组a中的元素,(p+i)就表示取出p+i所指的内存单元内容,即元素a[i]的值。(p+i)也可以用它的下表形式p[i]来表示。
- 问题2:有关动态内存分配。
- 问题2解决方案:C函数库提供了malloc和free两个函数,分别用于执行动态内存分配和释放。它们都在头文件stdlib.h中声明。
代码调试中的问题和解决过程
-
问题1:指针数组与数组指针的辨析。
-
问题1解决方案:通过查阅资料得知:1.指针数组:是指一个数组里面装着指针,也即指针数组是一个数组;定义形式:int a[10];说明:[]的优先级高于,该定义形式应该理解为:int * (a[10]);括号里面说明a是一个数组,包含了10个元素,括号外面说明每个元素的类型为int 。2.数组指针:是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已;
定义形式:int (p)[10]; 其中,由于[]的优先级高于,所以必须添加(p).说明:括号中的*表明 p 是一个指针,该指针变量保存的是一个数组的首地址,它指向一整个数组(),数组的类型为int[10],这正是 a 所包含的每个一维数组的类型。 -
问题2:
-
问题2解决方案:通过上网查询,我写出了如下代码。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3000行 | 30篇 | 200小时 | |
第一周 | 50/50 | 2/2 | 15/15 | |
第二周 | 100/150 | 2/4 | 15/30 | |
第三周 | 150/350 | 3/7 | 20/50 | |
第四周 | 150/500 | 3/10 | 20/70 | |
第五周 | 150/650 | 2/12 | 20/90 | |
第六周 | 150/800 | 4/16 | 20/110 | |
第七周 | 150/950 | 1/17 | 20/130 | |
第八周 | 150/1100 | 3/20 | 20/150 | |
第九周 | 150/1250 | 1/21 | 20/170 | |
第十周 | 150/1400 | 1/22 | 20/190 | |
第十一周 | 150/1550 | 1/23 | 20/210 | |
第十二周 | 150/1700 | 1/24 | 20/230 |
-
计划学习时间:20小时
-
实际学习时间:20小时