首页 > 编程语言 >2023-2024-1 20231421 《计算机基础与程序设计》第十二周学习总结

2023-2024-1 20231421 《计算机基础与程序设计》第十二周学习总结

时间:2023-12-17 19:23:50浏览次数:26  
标签:------------ 元素 二维 2024 地址 数组 2023 20231421 指针

------------恢复内容开始------------

------------恢复内容开始------------

------------恢复内容开始------------

------------恢复内容开始------------

------------恢复内容开始------------

------------恢复内容开始------------

------------恢复内容开始------------

------------恢复内容开始------------

------------恢复内容开始------------

作业信息

作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK11

作业目标:自学《c语言程序设计》第十一章

作业正文:

教材学习内容总结

《c语言程序设计》

指针是一种特殊的变量,它的值是另一个变量的地址,也就是说,它指向了另一个变量的存储位置。通过指针,我们可以间接地访问和修改另一个变量的值,这样可以提高程序的效率和灵活性。指针的类型决定了它指向的变量的类型,以及它所占用的存储空间。例如,int *p; 表示定义了一个指向整型变量的指针变量 p,它在内存中占用 4 个字节(这取决于编译器和操作系统)。

其次,我们要了解指针和数组的关系。数组是一种数据结构,它是由相同类型的元素按照一定的顺序排列而成的集合。数组的每个元素都相当于一个变量,都有自己的地址和值。数组的名字代表了数组的首地址,也就是数组第一个元素的地址。通过数组的名字和下标,我们可以确定和访问数组中的任意一个元素。例如,int a[5]; 表示定义了一个包含 5 个整型元素的数组 a,它在内存中占用 20 个字节(每个元素占 4 个字节)。a[0] 表示数组的第一个元素,它的地址是 a,它的值是 *a。a1 表示数组的第二个元素,它的地址是 a+1,它的值是 *(a+1)。以此类推,a[i] 表示数组的第 i+1 个元素,它的地址是 a+i,它的值是 *(a+i)。

由于数组的每个元素都是一个变量,因此指针变量可以指向数组中的元素,也就是说,我们可以用指针方式访问数组中的元素。例如,int p = a; 表示定义了一个指向整型变量的指针变量 p,并让它指向数组 a 的首地址,也就是 a[0] 的地址。那么,p 的值就是 a,p 的值就是 a[0]。p+1 的值就是 a+1,也就是 a1 的地址,(p+1) 的值就是 a1。以此类推,p+i 的值就是 a+i,也就是 a[i] 的地址,(p+i) 的值就是 a[i]。这样,我们就可以用 p[i] 来表示 a[i],它们是等价的。

对于二维数组,它是由若干个一维数组组成的数组。二维数组的每个元素都是一个一维数组,也有自己的地址和值。二维数组的名字也代表了数组的首地址,也就是数组第一个一维数组的地址。通过二维数组的名字和两个下标,我们可以确定和访问数组中的任意一个一维数组或者一个元素。例如,int a3; 表示定义了一个包含 3 个一维数组的二维数组 a,每个一维数组包含 4 个整型元素,它在内存中占用 48 个字节(每个元素占 4 个字节)。a[0] 表示二维数组的第一个一维数组,它的地址是 a,它的值是 *a。a[0][0] 表示二维数组的第一个一维数组的第一个元素,它的地址是 a,它的值是 **a。a1 表示二维数组的第二个一维数组,它的地址是 a+1,它的值是 *(a+1)。a[1][0] 表示二维数组的第二个一维数组的第一个元素,它的地址是 a+1,它的值是 ((a+1))。以此类推,a[i] 表示二维数组的第 i+1 个一维数组,它的地址是 a+i,它的值是 *(a+i)。a[i][j] 表示二维数组的第 i+1 个一维数组的第 j+1 个元素,它的地址是 *(a+i)+j,它的值是 ((a+i)+j)。

同样,由于二维数组的每个元素都是一个一维数组,因此指针变量也可以指向二维数组中的元素,也就是说,我们也可以用指针方式访问二维数组中的元素。但是,这里要注意指针变量的类型,因为二维数组的元素是一维数组,所以指针变量的类型应该是指向一维数组的指针,也就是行指针。例如,int (p)4 = a; 表示定义了一个指向含有 4 个元素的一维整型数组的指针变量 p,并让它指向二维数组 a 的首地址,也就是 a[0] 的地址。那么,p 的值就是 a,p 的值就是 a[0]。p+1 的值就是 a+1,也就是 a1 的地址,(p+1) 的值就是 a1。以此类推,p+i 的值就是 a+i,也就是 a[i] 的地址,(p+i) 的值就是 a[i]。这样,我们就可以用 p[i] 来表示 a[i],它们是等价的。但是,如果我们想要访问二维数组中的一个元素,而不是一个一维数组,我们就需要再加一个下标。例如,p[0][0] 表示 a[0][0],它的地址是 *p,它的值是 **p。p[1][0] 表示 a[1][0],它的地址是 *(p+1),它的值是 ((p+1))。以此类推,p[i][j] 表示 a[i][j],它的地址是 *(p+i)+j,它的值是 ((p+i)+j)。这样,我们就可以用 p[i][j] 来表示 a[i][j],它们是等价的。

除了行指针,我们还可以用列指针来访问二维数组中的元素。列指针是指向二维数组中的一个元素的指针,而不是一个一维数组的指针。例如,int p = a[0]; 表示定义了一个指向整型变量的指针变量 p,并让它指向二维数组 a 的第一个一维数组的第一个元素的地址,也就是 a[0][0] 的地址。那么,p 的值就是 a[0],p 的值就是 a[0][0]。p+1 的值就是 a[0]+1,也就是 a0 的地址,(p+1) 的值就是 a0。以此类推,p+i 的值就是 a[0]+i,也就是 a[0][i] 的地址,(p+i) 的值就是 a

 三,基于AI的学习

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

学习进度条

  代码行数 博客数 学习时间
目标 5000 30 400
第一周 200/200 2/2 20/20
第二周 300/300 4/4 28/28
第三周 500/500 6/6 30/30
第四周 500500 8/8 30/30
第五周 600/600 9/9 35/35
第六周 800/800 10/10 40/40
第七周 1000/1000 12/12 45/45
第八周 1200/1200 14/14 48/48
第九周 1400/1400 15/15 52/52
第十周 1600/1600 17/17 56/56
第十一周 1800/1800 18/18 60/60
第十二周 2000/2000 19/19 64/64

 

------------恢复内容结束------------

------------恢复内容结束------------

------------恢复内容结束------------

------------恢复内容结束------------

------------恢复内容结束------------

------------恢复内容结束------------

------------恢复内容结束------------

------------恢复内容结束------------

------------恢复内容结束------------

标签:------------,元素,二维,2024,地址,数组,2023,20231421,指针
From: https://www.cnblogs.com/Zhugedaoyi/p/17909585.html

相关文章

  • 2023-2024-1 学号20231324《计算机基础与程序设计》第十二周学习总结
     2023-2024-1学号20231324《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1《计算机基础与程序设计》这个作业的目标学习《C语言程序设计》第11章作业正文 2023-......
  • 2023-2024-1 20231412 《计算机基础与程序设计》第十二周学习总结
    2023-2024-120231412《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13008这个作业的目标......
  • 2023-2024-1 20211327 实验三-电子公文传输系统1-个人贡献
    简述工作在项目前期,我撰写了部分博客,作为组长分配任务设计项目整体框架结构,完成vue全局过滤器的声明和相关设置撰写了普通用户(非管理员)增删改查部分的代码,对jsp和html等前端代码进行修改和完善对数据库部分相关代码进行补充进行系统测试任务摘录全局过滤器我们的公文传......
  • 2023-2024-1 20232407 《网络》 第六周学习总结
    教材内容学习总结教材学习过程中的问题和解决过程问题1:不清楚零信任模型的优缺点问题1解决方案:询问chatgpt如下零信任模型的优点:增强了数据安全:零信任模型将数据划分成若干部分,对每个部分进行访问控制,让每一次访问都要经过身份验证和授权,从而有效地防止了数据的不当使用和......
  • 2023-2024-1 20231422 《计算机基础与程序设计》第十二周总结报告
    这个作业属于哪个课程2023-2024-计算机基础与程序设计这个作业要求在哪里2023-2024-计算机基础与程序设计这个作业的目标《C语言程序设计》第11章并完成云班课测试作业正文(https://www.cnblogs.com/Augenstern4545/p/17909531.html)教材学习内容总结学习指......
  • 学期2023-2024-1 20231409 《计算机基础与程序设计》第十二周学习总结
    学期2023-2024-120231409《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十二周作业这个作业的目标自学《C语言程序设计》第11章作业正文https:......
  • THUPC 2024 大失败
    前言THUPC2023,Dinshey交拧螺丝一题,罚时20发以上。Dinshey:我保证不拧螺丝。我:我保证拧螺丝。回顾F从12点调到15点。TLE爆了。直接用结构体存即可。发现replace有着无限的可能。用std::string存到std::vector里,存下标。13:30通过全部样例。发现replace......
  • #2023-2024-1 20232307《网络》第六周学习
    教材学习内容总结教材学习中的问题和解决过程-问题1:差分隐私到底是什么意思?-解决方案:基于AI的学习参考资料《网络空间安全导论》网络空间安全导论书单使用博客园进行学习MarkDown/Mermaid排版教程......
  • 2023-2024-1 20231416《计算机基础与程序设计》第十二周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12这个作业的目标自学《C语言程序设计》第十一章并完成云班课测试作业正文 https://www.cnblogs.co......
  • 2023-2024-1 20231416《计算机基础与程序设计》第十二周学习总结
    2023-2024-120231416《计算机基础与程序设计》第十二周学习总结这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12这个作业的目标自学《C语言程序设计》第十一章......