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

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

时间:2024-12-14 14:42:27浏览次数:4  
标签:arr 指向 int 元素 2024 2025 数组 20241318 指针

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12
这个作业的目标 <自学教材

《C语言程序设计》第11章并完成云班课测试>|
|作业正文|https://i.cnblogs.com/posts/edit |

教材学习内容总结
指针与数组的关系

  • 数组名在很多情况下可视为指针常量,指向数组的首元素地址。例如 int arr[5]; , arr 就相当于指向 arr[0] 的指针常量。
  • 可以通过指针来访问数组元素,比如定义 int *p = arr; ,那么 *(p + i) 就等价于 arr[i] ,通过指针的偏移来实现对数组不同元素的操作。

指针运算与数组遍历

  • 指针可以进行算术运算,像 ++ 、 -- 以及加上、减去一个整数等。利用指针自增等操作能方便地遍历数组元素,如 for(int *p = arr; p < arr + sizeof(arr)/sizeof(arr[0]); p++){} 这样的循环可依次访问数组各元素。

多维数组与指针

  • 对于二维数组,比如 int a[3][4] , a 可看作指向包含4个元素的一维数组的指针, a[i] 是指向第 i 行首元素的指针,而 *(a[i] + j)  或 a[i][j] 则是访问具体元素的方式,也能用指向二维数组的指针来进行相关操作与遍历。

数组指针与指针数组区别

  • 数组指针:例如 int (*p)[4] , p 是一个指针,指向包含4个 int 类型元素的数组,常用来操作二维数组等。
  • 指针数组:像 int *arr[5] , arr 是一个数组,数组的元素是指针类型,可用来存储多个指针,比如指向不同字符串等的指针。

教材学习中的问题和解决过程

问题1

在多维数组中,如果有 int a[3][4] ,如何通过一个指向数组的指针变量来访问 a[2][3] 元素?

解答:首先定义一个数组指针 int (*p)[4] = a; ,然后通过 ((p + 2)+3) 来访问 a[2][3] 。因为 p + 2 指向二维数组 a 的第3行(下标从0开始), *(p + 2) 就相当于 a[2] ,它是指向该行首元素的指针,再加上3就偏移到该行第4个元素(下标为3),最后通过 * 取值就能访问到 a[2][3] 。

问题2

指针数组和数组指针在内存分配上有什么不同?

解答:指针数组是一个数组,数组中的每个元素都是指针。其内存分配是为数组本身分配一块连续的内存空间,每个元素(指针)占用一个存储单元,这些指针可以指向不同内存地址。例如 int arr[5] ,系统会为这个包含5个指针元素的数组分配内存。而数组指针是一个指针,它指向一个数组。当定义 int (p)[4] 时, p 本身占用一个指针大小的内存空间,它所指向的数组(如果存在)在内存中是另一段连续空间,这段空间的大小是数组元素类型大小乘以数组长度。

基于AI的学习

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

标签:arr,指向,int,元素,2024,2025,数组,20241318,指针
From: https://www.cnblogs.com/2473780384qqcom/p/18606730

相关文章

  • nuxt3教程 2024年7月
    nuxt3教程2024年7月https://www.bilibili.com/video/BV11W421R7nC 1 2前置-一集搞明白客户端渲染和服务端渲染,多页面开发和spa单页面开发1安装介绍2服务端和客户端3基础配置4区分server和client,调试nuxt5路由的基本使用6命名路由,可选路由,全局路由7嵌套路由8编程......
  • NOIP2024
    T1显然,若\(t[l,r]\)均为\(\texttt1\),会让\(s[l,r]\)可以任意重排。从左到右按位匹配,考虑让一位匹配的代价,可能会让其后面缺少一个数进行匹配,也就是后面的答案最多减少\(1\)。而匹配一位已经有了\(1\)的贡献,故贪心匹配一定不劣。预处理后暴力匹配即可,附上赛时代码。#in......
  • 【2024年最受欢迎Angular课程】零基础自学的前端框架完整版教程
    【2024年最受欢迎Angular课程】零基础自学的前端框架完整版教程https://www.bilibili.com/video/BV1FZ42127cd/ 1-1015+1901、angular介绍angular.cnngserve--openvite...angular112.2主要特性1.AngularCLI可以快速搭建框架,创建module,service,class,directive等2......
  • 特斯拉 Model Y 2022 款与 2024 款置换评估报告--多个AI对话模型能力测评报告
    特斯拉ModelY2022款与2024款置换评估报告题目:车主买modelY2022款花了280900元,贷款5年,首付是130000元,五年贷款有利息,月缴费是3072元,缴费了25个月,该车还贴了7242车身膜,2000的玻璃膜,第三方评估价值160000元,偿还招商银行的未还的金额后剩余的钱可以用来当新款的首付,考......
  • 2024.12.13 周五
    2024.12.13周五Q1.1000Polycarphasaproblem—hislaptopkeyboardisbroken.Now,whenhepressesthe'b'key,itactslikeanunusualbackspace:itdeletesthelast(rightmost)lowercaseletterinthetypedstring.Iftherearenolowercase......
  • 2024-2025-1 20241329 《计算机基础与程序设计》第十二周学习总结
    作业信息作业归属课程:2024-2025-1-计算机基础与程序设计作业要求:2024-2025-1计算机基础与程序设计第十二周作业作业目标:《C语言程序设计》第11章作业正文:2024-2025-120241329《计算机基础与程序设计》第十二周学习总结教材学习内容总结《C语言程序设计》第11章1.指针和......
  • 20222415 2024-2025-1 《网络与系统攻防技术》实验七实验报告
    1.实验内容1.实验内容(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。2.实验过程(1)简单应用SET工具建立冒名网站systemctlstartapache2开启apache2服务,然后输入setoolkit,进入set工具后选择1,社会工程学攻击再选2,......
  • 2024-2025-1 20241322 《计算机基础与程序设计》第十二周学习总结
    2024-2025-120241322《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12这个作业的目标《C语言程序设计》......
  • 20222411 2024-2025-2 《网络与系统攻防技术》实验八实验报告
    1.实验内容1.1实验内容及要求(1)Web前端HTML能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。(2)Web前端javascipt理解JavaScript的基本功能,理解DOM。在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎......
  • 2024 csp-j 小木棍
    #include<iostream>usingnamespacestd;intmain(){intn;cin>>n;intx[n+5];for(inti=1;i<=n;i++){cin>>x[i];}for(inti=1;i<=n;i++){if(x[i]==1){cout<<-1;......