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

news/2024/12/14 14:38:06/文章来源:https://www.cnblogs.com/2473780384qqcom/p/18606730
这个作业属于哪个课程 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852513.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集合的数据筛选

1.集合的数据筛选 1.创建集合,并封装数据2.许愿有一个方法,可以判断年龄,然后alt+回车创建该方法(忽略这里未封装数据)3.在方法中,创建新的集合,存储年龄小于18的对象4.遍历list集合,每一个元素都有可能小于18,再使用if判断,将满足条件的元素存入newlist集合5.在主方法…

转载:【AI系统】动手实现自动微分

在这章内容,会介绍是怎么实现自动微分的,因为代码量非常小,也许你也可以写一个玩玩。前面的文章当中,已经把自动微分的原理深入浅出的讲了一下,也引用了非常多的论文。有兴趣的可以顺着综述 A survey 这篇深扒一下。 前向自动微分原理 了解自动微分的不同实现方式非常有用…

基于.NET8+Vue3开发的权限管理个人博客系统

前言 今天大姚给大家分享一个基于.NET8+Vue3开发的权限管理&个人博客系统:Easy.Admin。 项目介绍 Easy.Admin是一个基于.NET8+Vue3+TypeScript开发的权限管理&个人博客系统,分为普通版本和SSR(服务端渲染,支持SEO),服务端渲染框架基于vite-plugin-ssr实现,并且支…

spring-boot-devtools 实现热部署

1.devtoolsspring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。 2.项目搭建本文是采用IDEA搭建的Spring Boot应用,通过spring-boot-devtools配置,可以支持修改java文件会自动重启程…

IDEA bean json互转换插件

插件安装步骤:File->Settings->Plugins—>查找所需插件—>Install 或 File->Settings->Plugins—>Install plug from disk —>选择下载好的插件安装 一般插件安装后重启idea即可生效。 一、Java bean 转换 json 的插件 java-bean-to-json 下面详细安装…

转载:【AI系统】计算图的调度与执行

在前面的内容介绍过,深度学习的训练过程主要分为以下三个部分:1)前向计算、2)计算损失、3)更新权重参数。在训练神经网络时,前向传播和反向传播相互依赖。对于前向传播,沿着依赖的方向遍历计算图并计算其路径上的所有变量。然后将这些用于反向传播,其中计算顺序与计算图…

转载:【AI系统】微分实现方式

上一篇文章简单了解计算机中常用几种微分方式。本文将深入介绍 AI 框架离不开的核心功能:自动微分。 而自动微分则是分为前向微分和后向微分两种实现模式,不同的实现模式有不同的机制和计算逻辑,而无论哪种模式都离不开雅克比矩阵,所以我们也会深入了解一下雅克比矩阵的原理…

React16

React16免费基础视频教程 https://www.bilibili.com/video/BV1g4411i7po P1 01_React免费视频课程介绍 https://jspang.com 2019 5年前 react16 16.8.6 https://react.dev/ P2 02_React简介和Vue的对比 P3 03_React开发环境的搭建 npm i -g create-react-app@3.0.0 create-reac…

Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

错误报在了forward里的Conv2d处。原因是函数写在forward里可能默认cpu,如果写在init构造函数里,就不需要再指定cuda。 修改为箭头指示就不再报错了。 【参考】 Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same-CSDN博客

jquery半透明拖拽窗口插件

这是一款jquery半透明拖拽窗口插件。该插件可以在页面生成可以拖拽、最大化、最小化的浮动窗口。在线演示 下载使用方法 在页面中引入style.css、jquery和jquery-translucent.js文件。<link rel="stylesheet" type="text/css" href="style.css&quo…

Marvelous Designer高版本更改界面字体大小

打开软件 打开 设置/用户自定义 - 用户自定义选择用户界面 - 显示 - 自动规模不勾选 - 分辨率选择大重启软件即可