------------恢复内容开始------------
------------恢复内容开始------------
------------恢复内容开始------------
------------恢复内容开始------------
------------恢复内容开始------------
------------恢复内容开始------------
------------恢复内容开始------------
------------恢复内容开始------------
------------恢复内容开始------------
作业信息
作业要求: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