2023-2024-1 20231306 《计算机基础与程序设计》第十二周学习总结
作业信息
这个作业属于哪个课程 | 2023-2024-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2023-2024-1计算机基础与程序设计第十二周作业 |
这个作业的目标 | 无 |
作业正文 | https://www.cnblogs.com/zwywuhu/p/17908748.html |
教材学习内容总结
《C语言程序设计》—— 第十一章 指针和数组
- 指针和一维数组间的关系
- 数组名是指向数组中第一个元素的指针常量。
- a或(a+0)表示取出首地址a所指的存储单元中的内容。因为a[i]被编译器解释为表达式*(a+i),即表示引用数组首地址所指元素后面的第i个元素。
- 一维数组做函数形参时,即使将形参声明为一维数组,它也将退化为指针,系统仅仅为其分配指针所占的内存空间。
- 指针和二维数组间的关系
- 在二维数组a[i][i]中,a[0]可看成是由4个整型元素组成的一维数组的数组名。
- a[i][j] == (a[i]+j) == ((a+i)+j) == ((a+i))[j]
- 行指针定义示例: int (*p)[4]; 表示定义了一个可指向含有4个元素的一维整型数组的指针变量。
- 指针数组及其应用
- 指针数组由若干基类型相同的指针所构成。
- 在使用指针数组前必须对数组元素进行初始化。
- 指针数组可用于表示命令行参数,函数main()是通过形参获得这些参数的,所以需要使用带参数的main()形式。
- 动态数组
-
C语言程序中变量的内存分配方式有以下三种:
(1)从静态存储区分配
(2)在栈上分配
注意,如果往栈中压入的数据超出预先给栈分配的容量,那么就会出现栈溢出,从而使程序运行失败。
(3)在堆上分配
用动态内存分配函数来申请的内存都是从堆上分配的。 -
动态内存分配函数:
-
若不能确定某种类型所占字节的字节数,则需要使用sizeof()计算本系统中该类型所占内存的字节数,然后再用函数malloc()向系统申请相应的字节数的存储空间。
-
函数calloc()用于给若干同一类型的数据项分配连续的存储空间并赋值为0。
-
void free (void *p);
可释放向系统动态申请的由指针p指向的存储空间。
基于AI的学习
代码调试中的问题和解决过程
问题一:
在准备实验时,我在fclose(fp);之后加了是否成功关闭文件的检查性代码,如图:
但检查结果一直显示“Nope!Please review your code!Fighting!”
问题一解决过程:
经过询问chat,成功解决问题,如图:
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
------- | -------- | ----- | ||
第二周 | 200/400 | 2/4 | ||
第三周 | 200/600 | 3/7 | ||
第四周 | 100/700 | 2/9 | ||
第五周 | 200/900 | 1/ 10 | ||
第六周 | 300/1200 | 1/11 | ||
第七周 | 400/1600 | 1/12 | ||
第八周 | 500/2100 | 1/13 | ||
第九周 | 500/2600 | 3/16 | ||
第十周 | 400/3000 | 1/17 | ||
第十一周 | 400/3400 | 1/18 | ||
第十二周 | 400/3800 | 2/20 |