首页 > 编程语言 >学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第九周学习总结

学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第九周学习总结

时间:2024-11-23 20:34:40浏览次数:9  
标签:arr 变量 指向 int 2024 2025 数组 20241303 指针

作业信息

这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第九周作业)
这个作业的目标 <写上具体方面> 计算机科学概论(第七版)第10,11章 并完成云班课测试,《C语言程序设计》第8章并完成云班课测试
作业正文 ... 本博客链接

教材学习内容总结

《计算机科学概论(第七版)》第10、11章内容总结:

第10章 操作系统基础

  • 操作系统的概念与功能:操作系统是管理计算机硬件和软件资源的程序,是用户与计算机硬件之间的接口。其主要功能包括资源管理(如CPU、内存、外设等)和任务调度。核心功能有进程管理、内存管理、文件系统管理、设备管理以及用户界面 。
  • 进程管理:进程是程序的一个执行实例,有独立的内存空间和执行状态,包括运行态、就绪态、阻塞态等。操作系统通过特定的调度算法决定进程的运行顺序,常见调度算法有先来先服务、短作业优先、优先级调度、时间片轮转等.
  • 内存管理:操作系统负责分配内存给进程,常见的内存分配方式有连续内存分配、分页系统、分段系统。虚拟内存技术可通过硬盘空间模拟出比物理内存更大的内存空间,让程序能使用更多内存.
  • 文件系统:文件是数据存储的基本单位,操作系统管理文件的创建、删除、读取和写入等操作,并通过目录结构组织文件,还可对文件进行权限控制,文件通常存储在硬盘等外部存储设备上.
  • 输入输出管理:输入输出设备包括键盘、鼠标、显示器、硬盘等。操作系统通过提供缓冲区和I/O调度算法,提高数据传输效率,减少等待时间.

第11章 数据库系统

  • 数据库系统概述:数据库是有组织的数据集合,由数据库管理系统进行管理,提供高效的数据存储、查询、更新和管理功能。数据库管理系统确保数据的完整性、一致性和安全性.
  • 数据模型:主要有层次模型、网状模型和关系模型。层次模型以树形结构组织数据;网状模型以图形结构组织,更灵活;关系模型以二维表格形式组织,是目前最常用的数据模型,关系数据库管理系统采用此模型.
  • 关系数据库:表是基本存储单位,包含列(属性)和行(记录)。主键用于唯一标识每条记录,外键用于建立表之间的联系。数据完整性包括实体完整性、参照完整性和域完整性等.
  • SQL语言:SQL是用于访问和操作数据库的标准语言,包括数据查询(SELECT)、数据操作(INSERT、UPDATE、DELETE)、数据定义(CREATE、ALTER、DROP)以及数据控制(GRANT、REVOKE)等功能.
  • 数据库设计:实体-关系模型是一种图形化的数据库设计工具,用于描述数据库中的实体及其关系。规范化可消除冗余数据、避免更新异常,常见的规范化范式有第一范式、第二范式、第三范式等.

《C语言程序与设计》 指针内容总结

一、指针的基本概念

  1. 指针变量:指针是一种特殊的变量,其值为内存地址。声明指针变量的一般形式为数据类型 *指针变量名;,例如int *p;表示p是一个指向int类型数据的指针变量。
  2. 取地址运算符&:用于获取变量的内存地址。如&a表示变量a的地址,可将该地址赋值给指针变量,使指针指向该变量,例如p = &a;

二、指针的运算

  1. 赋值运算:指针可以被赋值为同类型变量的地址、NULL(空指针,表示不指向任何有效地址)或其他合法的指针值。例如int *q = NULL;q = p;p为已初始化的同类型指针)。
  2. 算术运算
    • 指针与整数相加或相减:当指针指向数组元素时,指针 + n表示指向当前指针位置往后第n个同类型元素的地址,指针 - n则表示往前第n个元素的地址。移动的字节数取决于指针所指向的数据类型的大小,例如int类型指针加 1,则地址增加 4 字节(假设int占 4 字节)。
    • 两个指针相减:只有当两个指针指向同一数组中的元素时,相减才有意义,其结果为两指针间元素的个数。

三、指针与数组

  1. 数组名与指针的关系:在 C 语言中,数组名在大多数情况下会被隐式转换为指向数组首元素的指针。例如int arr[5];arr等价于&arr[0],可以将其赋值给int *类型的指针变量,如int *p = arr;
  2. 通过指针访问数组元素:利用指针可以方便地遍历数组。例如*(p + i)等价于arr[i],通过改变p的值和循环,可以灵活地访问数组中的各个元素。

四、指针与函数

  1. 函数参数传递指针:将指针作为函数参数传递,可以在函数内部修改调用函数中变量的值,实现数据的双向传递。例如:
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

main函数中调用swap(&x, &y);,可交换xy的值。
2. 函数返回指针:函数可以返回指针类型的值,但要注意返回的指针不能指向函数内部的局部变量(除非该局部变量为static修饰的静态变量),否则可能导致错误。例如:

int *func() {
    static int num = 10;
    return &num;
}

五、指针与字符串

在 C 语言中,字符串可以用字符数组表示,也可以用字符指针指向字符串常量。例如char *str = "Hello";,此时str指向字符串常量"Hello"的首字符。可以通过指针遍历字符串中的字符,但不能修改字符串常量的内容。若要修改字符串,应使用字符数组。

六、指针数组

指针数组是一个数组,其元素为指针类型。例如int *arr[5];表示arr是一个包含 5 个元素的数组,每个元素都是int *类型的指针。指针数组常用于处理多个字符串或指向不同对象的指针集合等情况。

指针在 C 语言编程中虽然功能强大,但也容易出错,如果使用不当可能导致程序崩溃或产生难以调试的错误。因此,在使用指针时需要深入理解其概念和原理,谨慎操作内存地址,确保程序的正确性和稳定性。

基于AI的学习




代码调试中的问题和解决过程

问题1:在调用函数时,返回值使用return无法输出正确结果
方法:return只能返回一个变量,当存在多个变量时需要使用指针

void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

问题2:输出变量地址时,会产生随机数
方法:将变量初始化

     int main(){
int a=1;
**int *pa=&a;**
printf("a is %d,&a is %p,pa is %p",a,&a,pa);
}

问题3:使用动态数组时要注意指针变量内存的申请是否成功
方法:使用if语句进行判断

if(p==NULL);
if(p!=NULL);

问题4:注意释放内存空间
方法:使用free()

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第八周 1400/2000 1/2 20/20
第九周 1600/2200 1/4 18/38
第十周 500/1000 0/7 22/60
第十一周 300/1300 0/9 30/90

标签:arr,变量,指向,int,2024,2025,数组,20241303,指针
From: https://www.cnblogs.com/dl2006/p/18565016

相关文章

  • 20241123-四元数高阶奇异值分解-(1)
    四元数高阶奇异值分解及其在彩色图像处理中的应用-(1)......
  • 20241123-四元数高阶奇异值分解-(4-5)
    四元数高阶奇异值分解及其在彩色图像处理中的应用-(4-5)......
  • e站官网版2024下载-e站(EhViewer)绿色版
    查看EhViewer的更新记录可以帮助你了解软件的最新功能、修复的Bug以及其他改进。以下是几种查看EhViewer更新记录的方法:方法一:通过GitHub仓库查看EhViewer的源代码托管在GitHub上,更新记录通常会记录在项目的CHANGELOG文件中。以下是具体步骤:访问EhViewer的GitHub仓库:打开浏览......
  • [题解](更新中)[test06]2024/11/23 模拟赛 / 2023牛客OI赛前集训营-提高组(第三场) A~C
    原题页面:https://ac.nowcoder.com/acm/contest/65194Statements&Solution:https://www.luogu.com.cn/problem/U507978\(80+80+50+24=234\)。A贪心+双指针。根据贪心思想,大值选大、小值选小。我们按绝对值从大到小给\(a\)排序,再按从小到大给\(b\)排序,取双指针\(l=1,r=m\)......
  • 它终于发生了。2024年因人工智能倒闭的第一家美国上市企业!
    一家美国公司在最近的财报发布后,股价从历史高点暴跌了99%,现在正走在倒闭的最后一段路上。这家公司叫Chegg,是一家美国的教育科技公司,主要提供一系列服务,帮助学生完成学业。疫情期间,它曾是备受关注的明星公司,三年前的市值一度高达120亿美元。现在呢?它眼看就要消失了。原因是什......
  • 【教学类-70-02】20241121中2班幼儿制作“圆镜和方镜”(适配5CM圆镜)通义万相花边图案
    背景需求:暑假里我用通义万相生成了圆形和正方的花边图案,并购买30*30CM的软镜。设计了正反镜子。【教学类-70-01】20240722镜子花边(适配5CM圆镜)_通义万相使用-CSDN博客文章浏览阅读821次。【教学类-70-01】20240722镜子花边(适配5CM圆镜)_通义万相使用https://blog.csdn.net/re......
  • PH热榜 | 2024-11-23
    DevNow是一个精简的开源技术博客项目模版,支持Vercel一键部署,支持评论、搜索等功能,欢迎大家体验。在线预览1.Integral标语:适合专家社群和组织使用的Slack/Discord替代品介绍:这款新一代的电脑和手机应用,专为专家社群和组织打造。它能让你将专业知识和人脉扩展速度......
  • JetBrains IDE 2024.3 (macOS, Linux, Windows) - 开发者工具
    JetBrainsIDE2024.3(macOS,Linux,Windows)-开发者工具Aqua,CLion,DataGrip,DataSpell,Fleet,GoLand,IntelliJIDEA,PhpStorm,PyCharm,Rider,RubyMine,WebStorm请访问原文链接:https://sysin.org/blog/jetbrains/查看最新版。原创作品,转载请保留出处。作者主......
  • 2024.11.23模拟赛(*^▽^*)
    加密版:困困,困困困困困。困困困困困困困困困困困困困困困困困,困困困困困困困困困困困。困困困,困困困困困困困困困困,困困困困困困困困困困困困困困困困困困困困困,困困。困困困困,困困困困!今天,模拟赛还没开始多久,就闻到了弥漫在空气中的糊味。于是,整个机房一起(?)冲到操场看热闹观......
  • 2024-2025-1 20241407《计算机基础与程序设计》第九周学习总结
    作业信息这个作业属于哪个课程2024-2025-1计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第九周作业这个作业的目标操作系统责任,内存与进程管理,分时系统,CPU调度,文件、文件系统,文件保护,磁盘调度作业正文本博客教材学习内容总结......