2023-2024-1 20231320 《计算机基础与程序设计》第十二周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(2023-2024-1 计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(2022-2023-1计算机基础与程序设计第十二周作业) |
这个作业的目标 | <自学《C语言程序设计》第11章并完成云课班作业> |
作业正文 | 作业正文 |
教材学习内容总结
《C语言程序设计》
本章讲解了指针和数组的概念,用指针运算的特殊性及其在访问数组元素中的作用。同时数组和指针作为函数参数进行模拟按引用调用中的相似性。指针和二维数组间的关系,通过二维数组的行指针和列指针来引用二维数组元素。指针数组用于表示多个字符串,动态数组C程序的内存映象,以及缓冲区蠕虫的概念。
教材学习中的问题和解决过程
问题:在学习的过程中我不太清楚指针和二维数组之间的联系,不清楚如何用指针定位具体数组。
解决:可以通过在定义指针时采用A=B[1][3]的格式。
基于AI的学习
q
我最近在学习指针和二维数组,请你用苏格拉底的方式向我提问,一次一个问题,问下一问题前先对我上一问题的回答进行点评
AI
当然,让我们开始学习之旅吧。首先,你能简要地解释一下指针在编程中的作用以及为什么它们是重要的吗?
q
指针在C语言中是储存变量地址的地方,可以通过变量地址来访问变量,是变量能够更为直接的访问到
AI
很好。指针的确允许我们直接访问变量的内存地址,但在使用指针时,你是否遇到过指针的一些特性,比如指针的解引用和指针算术运算?这些特性是如何影响你对指针的使用的呢?
q
指针的解引用和指针算数运算是什么?请用易于理解的语言解释
AI
很好,让我们深入了解。首先,指针的解引用是指通过指针访问其所指向内存地址的值。你可以通过在指针前加上星号(*)来实现解引用。例如,如果有一个整型指针 intPtr,那么 intPtr 就表示该指针指向的整数值。
其次,指针算术运算是指在指针上执行加法或减法操作。这是因为指针实际上存储了一个地址,而地址是按字节划分的。因此,对指针进行加法或减法运算时,实际上是在移动指针指向的内存地址。这在处理数组或者动态分配内存时特别有用。
你是否在实际编程中遇到了指针解引用和算术运算的具体应用场景,以及你对这些操作的理解如何呢?
q
请你针对C语言中指针在数组的应用进行提问
AI
当涉及到指针与数组的结合时,你是否了解指针与数组之间的关系,以及指针如何用于访问数组元素?另外,你是否曾经使用指针来遍历数组或者传递数组给函数?如果有,你能分享一些相关的经验吗?
q
可以通过指针访问数组,将指针指向数组中需要访问的位置,在访问时采取指针前加的方式
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 20/20 | 1/2 | 20/20 | 通过计算机概论的略读,对计算机有了一个更准确的初步了解 |
第二周 | 5/10 | 2/4 | 5/25 | 对计算机和编程有了基础的专业了解 |
第三周 | 5/10 | 1/4 | 7 /32 | 对C语言有了初步的了解,编程开始入门 |
第四周 | 50/50 | 2/4 | 7/38 | 学会使用编程工具,逻辑门,分支等重要编程基础 |
第五周 | 40/120 | 2/4 | 6/20 | 学会一些编程语言,对codeblocks的使用有了新的学习 |
第六周 | 400/520 | 1/5 | 8/28 | 学会了关于分支等的一些基础编程语言,同时也对计算机的自学有的更深的体会,能够自己解决部分不懂的问题 |
第七周 | 350/870 | 2/7 | 7/35 | 学会了关于自定义函数的使用,以及代码的编写 |
第八周 | 350/1220 | 1/8 | 8/41 | 学习了数组的概念,同时也了解到一些自己的不足如对Python不了解,无法快速完成云班课任务,本周还学习了多维数组的概念 |
第九周 | 350/1570 | 1/9 | 9/50 | 学习了二维数组和指针的概念,还通过实验让自己对之前的知识有了一个融会贯通 |
第十周 | 250/1920 | 1/10 | 7/59 | 学习了字符串有关知识 |
第十一周 | 180/ 2100 | 1/11 | 7/66 | 学习了结构体的知识,明白了如何将不同类型的数据结合起来 |
第十二周 | 200/2280 | 1/12 | 8/73 | 本周学习了文件,如何将程序里产生的文件储存在硬盘里 |