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

# 学期2024-2025-1 学号20241405 《计算机基础与程序设计》第9周学习总结

时间:2024-11-24 13:22:46浏览次数:3  
标签:返回 return 函数 20241405 学号 int 2024 内存 指针

作业信息

|这个作业属于哪个课程| https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP|
|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09|
|这个作业的目标|1、操作系统责任 2、内存与进程管理 3、分时系统 4、CPU调度 5、文件、文件系统 6、文件保护 7、磁盘调度|
|作业正文|https://i.cnblogs.com/posts/edit;postId=18565697|

教材学习内容总结

《计算机科学概论(第七版)》第 10 章:操作系统基础
操作系统的概念与功能:操作系统是管理计算机硬件和软件资源的程序,是用户与计算机硬件之间的接口。其主要功能包括资源管理(如 CPU、内存、外设等)和任务调度。核心功能涵盖进程管理、内存管理、文件系统管理、设备管理以及用户界面。
进程管理:进程是程序的一个执行实例,拥有独立的内存空间和执行状态,包括运行态、就绪态、阻塞态等。操作系统依据特定的调度算法来决定进程的运行顺序,常见的调度算法有先来先服务、短作业优先、优先级调度、时间片轮转等。
内存管理:操作系统负责为进程分配内存,常见的内存分配方式有连续内存分配、分页系统、分段系统。虚拟内存技术可通过硬盘空间模拟出比物理内存更大的内存空间,使程序能够使用更多内存。
文件系统:文件是数据存储的基本单位,操作系统负责管理文件的创建、删除、读取和写入等操作,并通过目录结构组织文件,还可对文件进行权限控制,文件通常存储在硬盘等外部存储设备上。
输入输出管理:输入输出设备包含键盘、鼠标、显示器、硬盘等。操作系统通过提供缓冲区和 I/O 调度算法,提高数据传输效率,减少等待时间 。
《计算机科学概论(第七版)》第 11 章:数据库系统
数据库系统概述:数据库是有组织的数据集合,由数据库管理系统进行管理,可提供高效的数据存储、查询、更新和管理功能。数据库管理系统能够确保数据的完整性、一致性和安全性。
数据模型:主要有层次模型、网状模型和关系模型。层次模型以树形结构组织数据;网状模型以图形结构组织,更为灵活;关系模型以二维表格形式组织,是目前最为常用的数据模型,关系数据库管理系统采用此模型。
关系数据库:表是基本存储单位,由列(属性)和行(记录)构成。主键用于唯一标识每条记录,外键用于建立表之间的联系。数据完整性包括实体完整性、参照完整性和域完整性等。
SQL 语言:SQL 是用于访问和操作数据库的标准语言,涵盖数据查询(SELECT)、数据操作(INSERT、UPDATE、DELETE)、数据定义(CREATE、ALTER、DROP)以及数据控制(GRANT、REVOKE)等功能。
数据库设计:实体 - 关系模型是一种图形化的数据库设计工具,用于描述数据库中的实体及其关系。规范化可消除冗余数据、避免更新异常,常见的规范化范式有第一范式、第二范式、第三范式等 。
《C 语言程序设计》第 8 章:指针和数组
指针基础:指针是存储内存地址的变量,其值为另一个变量的地址,通过指针可以访问和操作该地址所指向的数据。指针运算包括加法、减法等,指针类型必须与所指向的数据类型一致。
指针与数组的关系:数组名实际上是指向数组首元素的指针。可以通过指针运算来访问数组的元素,例如*(arr + i)等同于arr[i]。二维数组的元素也可以通过指针操作进行访问,二维数组可以视为指向指针的指针。
指针与函数:使用指针可以传递变量的地址,使得函数能够修改传入的变量。函数也可以返回指针,如返回动态分配的内存地址等。
动态内存分配:C 语言提供了malloc()、calloc()、realloc()和free()等动态内存分配函数。malloc()用于分配一块指定大小的内存并返回该内存的指针;calloc()分配指定数量和大小的内存,并初始化为 0;realloc()可调整已经分配内存的大小;free()则用于释放之前分配的内存。
多维数组与指针:多维数组本质上是指向指针的指针,二维数组可以通过指针进行遍历和访问 。

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

基于AI的学习

C语言 指针和return 区别?
C语言中指针与return的区别
一、概念本质
指针:指针是一种变量,它存储的是另一个变量的内存地址。通过指针可以间接访问和操作所指向的变量。例如:
int num = 10;
int *ptr = # // ptr是一个指针,指向num的地址
return:return是一个关键字,用于结束函数的执行,并将一个值(如果函数有返回类型)返回给调用该函数的地方。例如:
int add(int a, int b) {
return a + b;
}
二、功能用途
指针
数据共享与修改:可以在函数间共享数据,并且能够修改函数外部变量的值。例如:
void modifyValue(int *ptr) {
*ptr = 20;
}
int main() {
int num = 10;
int *ptr = #
modifyValue(ptr);
// 此时num的值已经被修改为20
return 0;
}

  • 动态内存分配:用于管理动态分配的内存,如malloc函数返回的是一个指向动态分配内存的指针。
    int *arr = (int *)malloc(5 * sizeof(int));
  • 构建复杂数据结构:如链表、树等数据结构中,指针用于连接各个节点。
    return
    提供函数结果:对于计算型函数,return返回计算结果。例如一个计算平方的函数:
    int square(int num) {
    return num * num;
    }
  • 表示函数执行状态:在某些情况下,return可以返回一个表示函数执行成功或失败的值(例如返回0表示成功,返回非0值表示失败)。
  • 控制程序流程:函数执行到return语句时,会立即结束函数并返回,从而改变程序的执行流程。
    三、存储内容
    指针:存储的是内存地址,这个地址指向内存中的某个数据对象(如变量、数组等)。地址的值取决于操作系统的内存管理机制和变量在内存中的分配位置。
    return:返回的值可以是各种数据类型,如整数、浮点数、字符、结构体等,取决于函数的返回类型声明。例如:
    // 返回整数
    int getValue() {
    return 5;
    }
    // 返回结构体
    struct Point {
    int x;
    int y;
    };
    struct Point getPoint() {
    struct Point p = {1, 2};
    return p;
    }
    四、使用限制
    指针
    空指针问题:如果指针没有被正确初始化或者指向的内存被释放后再使用,可能会导致空指针异常,使程序崩溃。
    指针越界:在使用指针访问数组等数据结构时,如果超出了有效范围,会导致未定义行为。
    指针类型匹配:在进行指针运算和赋值时,要注意指针类型的匹配,不同类型的指针不能随意混用。
    return
    返回值类型匹配:函数返回值的类型必须与函数声明的返回类型一致。如果函数声明为返回int类型,就不能返回一个double类型的值。
    函数内部局部变量的返回限制:函数内部的局部变量在函数结束时会被销毁,如果返回指向局部变量的指针或者引用(在C++中),会导致错误,因为返回后再访问该指针指向的内容是未定义行为。但是对于基本数据类型的局部变量,可以返回其值,因为返回的是一个副本。例如:
    int *badFunction() {
    int num = 10;
    return # // 错误,返回局部变量的地址
    }
    int goodFunction() {
    int num = 10;
    return num; // 正确,返回局部变量的值(副本)
    }

标签:返回,return,函数,20241405,学号,int,2024,内存,指针
From: https://www.cnblogs.com/sztheihei/p/18565697

相关文章

  • 2024-2025-1 20241316 《计算机基础与程序设计》第九周学习总结
    2024-2025-120241316《计算机基础与程序设计》第九周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第九周作业这个作业的目标<操作系统责任、内存与进程管理、分时系统、CPU调度、......
  • 20241313 刘鸣宇 《计算机基础与程序设计》第九周学习总结
    2024-2025-120241313刘鸣宇《计算机基础与程序设计》第九周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具体......
  • 2024-2025-1 20241423 《计算机基础与程序设计》第九周学习总结
    作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里2024-2025-1计算机基础与程序设计第九周作业这个作业的目标操作系统责任、内存与进程管理、分时系统、CPU调度、文件、......
  • 2024年 数模美赛 D题 湖流网络水位控制
    摘要        本文旨在为国际联合委员会(IJC)提供一个综合性的解决方案,以管理和模拟直接影响五大湖流网络水位的控制机制。通过建立五大湖及其连接河流的网络模型,制定维持最佳水位的算法,并分析控制算法的敏感性,我们旨在平衡各利益相关者的需求,并适应环境条件的变化。特别......
  • 2024退市新规
    一、退市规则退市包括主动退市和强制退市两类。强制退市分为交易类强制退市、财务类强制退市、规范类强制退市和重大违法类强制退市等四类情形。 主动退市:1、上市公司向证券交易所主动提出申请退市。2、上市公司、上市公司股东或其他收购人通过向所有股东发出收购全部或部分......
  • 【2024最新】渗透测试工具大全(超详细),收藏这一篇就够了!
     黑客/网安大礼包:......
  • 华为OD机试真题-最少量线段覆盖-2024年OD统一考试(E卷)
    最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客     每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。题目描述给定坐标轴上的一组线......
  • 2024年11月17日 星期天 Go语言基础
    今日格言坚持每天进步一点点~一个人也可以是一个团队~学习全栈开发,做自己喜欢的产品~~Go语言的创始人Go语言的创始人有三位,分别是:RobertGriesemer:他参与开发了JavaHotSpot虚拟机。RobPike:他是Go语言项目的总负责人,曾是贝尔实验室Unix团队的成员,参与过Plan9、Inf......
  • 2024-2025-1 20241428张雄一《计算机基础与程序设计》第九周学习总结
    学期(如2024-2025-1)学号20241428《计算机基础与程序设计》第9周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业的目标操作系统责任、内存与进程管理、分时系统、CPU调度、文件、文件系统、文件保护、磁盘调度作业......
  • NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛25
    前言music《浮游》天已经微亮我睁开双眼长夜漫漫总有散来到故事终点如果有人问此生不悔碰触着你的地方刻下纠缠印痕说再见不是离别何必追赶着句点思念在一瞬间倾倒地平线荒野在歌唱大地在缄默光粒穿透海尘埃中花开游蜉望着天誓言追光影灵魂在......