当前位置: 首页 > news >正文

Operating System 实验二 内存管理实验

目录

实验目标:

实验设备:

实验内容:

(1)验证FIFO和Stack LRU页面置换算法

【代码(注释率不低于30%)】

【实验过程(截图)】

【结论】

(2)分别用FIFO和Stack LRU页置换算法,自己设定一个页面引用序列,绘制页错误次数和可用页帧总数的曲线并对比(可用Excel绘制或手绘);能否重现FIFO导致的Belady异常;

【代码】

【过程】

【结论】

(3)[选做]编程实现最优页置换算法,用课件上的序列验证

【代码】

【过程】

【结论】

Linux环境下尝试过程:(成功!)

1、使用winscp 将文件从windows文件夹复制到linux文件夹。

2、安装cmake和vi

3、练习vi使用

4、Cmake使用


本栏目不存在实验一

实验目标

  1. 熟悉linux下C程序的编译和链接;熟悉CMake工具使用;
  2. 熟悉命令行方式下,用vi修改源代码文件
  3. 编写程序验证FIFO和Stack LRU页面置换算法
  4. 分别用FIFO和Stack LRU页置换算法,自己设定一个页面引用序列,绘制页错误次数和可用页帧总数的曲线并对比(可用Excel绘制或手绘);能否重现FIFO导致的Belady异常;
  5. [选做]编程实现最优页置换算法,用课件上的序列验证。

实验设备

  1. 硬件:微机,hyper-V虚拟化平台或者远程linux终端
  2. 软件:cmake,demo代码

实验内容:

(1)验证FIFO和Stack LRU页面置换算法
【代码(注释率不低于30%)】

Main.c

//模拟了两种经典的页面置换算法:先进先出(FIFO) 和 最近最少使用(LRU)
#include <stdio.h>
#include "queue.h"
#include "stack.h"int test_fifo(int frameCount, int reference[], int totalCount) {//模拟 FIFO 页面置换算法。int i, victim;int errCount = 0;// 用于统计页面错误的次数queue_init(frameCount);//初始化一个队列,队列大小为 frameCount,表示内存中的页框数量。for (i = 0; i < totalCount; i++) {printf("-------------------------------\n");int page = reference[i];// 当前引用的页面int index = queue_find(page);// 在队列中查找当前页面,返回索引if (index >= 0) {// 有映射的页帧,成功printf("page OK!\n");continue;// 跳过当前循环,处理下一个页面}// 发生了页错误errCount++;printf("page fault: ");if (!queue_is_full()) {// 队列未满,有可用页帧,载入新页queue_push(page);printf(" load for page: %d\n", page);} else {// 没有可用页帧,选择一个牺牲帧(出队一个最早的页)victim = queue_pop();//移除最早进入的printf("swap out %d, ", victim);queue_push(page);//加入新页面printf("swap in %d\n", page);}queue_print();//打印队列当前状态}return errCount; // 返回页面错误的总次数}int test_lru_stack(int frameCount, int reference[], int totalCount) {//模拟 LRU 页面置换算法。选择最久未使用的页面作为牺牲页面。int i, victim;int errCount = 0;stack_init(frameCount);// 初始化栈,设置栈大小为 frameCountfor (i = 0; i < totalCount; i++) {printf("-------------------------------\n");int page = reference[i];//引用当前int index = stack_find(page);//栈中查找if (index >= 0) {// 有映射的页帧,成功;将该页移动到栈顶stack_move_to_top(index);printf("page OK!\n");continue;}// 发生了页错误errCount++;printf("page fault: ");if (!stack_is_full()) {// 有可用页帧,载入新页stack_push(page);printf(" load for page: %d\n", page);} else {// 没有可用页帧,从栈底选择一个LRU牺牲帧victim = stack_pop_bottom();printf("swap out %d, ", victim);stack_push(page);// 将新页面压入栈printf("swap in %d\n", page);}stack_print();}return errCount;
}int main() {//程序入口,定义页面引用序列并调用测试函数int reference[] = {//ppt示例7, 0, 1, 2, 0,3, 0, 4, 2, 3,0, 3, 2, 1, 2,0, 1, 7, 0, 1};int totalCount = sizeof(reference) / sizeof(int);// 计算引用序列的长度int errCount;int frameCount = 3;// // 设置内存页框数量为 3errCount = test_fifo(frameCount, reference, totalCount);// 调用 FIFO 算法 预计701(LRU为107)printf("FIFO: frames:%d total: %d,  error: %d, error rate: %.0f%%\n", frameCount, totalCount, errCount,100.0 * errCount / totalCount);return 0;
}

Queue.h

#ifndef MYC_QUEUE_H
#define MYC_QUEUE_Hvoid queue_init(int capacity);int queue_push(int number);int queue_pop();int queue_find(int value);void queue_print();void stack_print();int queue_is_full();#endif //MYC_QUEUE_H

Queue.c

/*queue_ init()初始化队列,分配内存并设置队列的容量
queue push()向队列中添加一个元素。
queue_pop()从队列中移除一个元素。
queue_find()在队列中查找一个元素
queue is fu11():判断队列是否已满。
queue_size():返回队列中元素的数量,
queue_print():打印队列的当前状态*/
#include <stdio.h>
#include <stdlib.h>static int *g_data = NULL;  // 指向队列数据的指针
static int g_capacity = 0;  // 队列的最大容量
static int rear = 0;        // 队尾指针
static int front = 0;       // 队头指针
static int is_full = 0;     // 标志队列是否已满
void queue_init(int capacity) {int i;if (g_data) free(g_data);  // 如果队列已初始化,释放原有内存g_capacity = capacity;     // 设置队列容量g_data = (int *)malloc(g_capacity * sizeof(int));  // 分配内存front = rear = 0;          // 初始化队头和队尾指针is_full = 0;               // 初始化队列为空for (i = 0; i < g_capacity; i++) {g_data[i] = -1;        // 初始化队列数据为 -1(表示空位)}
}
int queue_push(int number) {if (is_full) {// 如果队列已满,返回 -1 表示失败return -1;}g_data[rear] = number;     // 将元素添加到队尾rear = (rear + 1) % g_capacity;  // 更新队尾指针(循环队列的关键)if (rear % g_capacity == front) {// 如果队尾指针追上队头指针,队列已满is_full = 1;}return 0;  // 成功返回 0
}
int queue_is_full() {return is_full;
}int queue_size() {//计算队列中当前的元素数量。return (rear - front + g_capacity) % g_capacity;
}int queue_pop() {int i;if (!is_full) {// 队空return -1;}is_full = 0;int value = g_data[front];  // 获取队头元素g_data[front] = -1;         // 将队头位置标记为空front = (front + 1) % g_capacity;  // 更新队头指针return value;  // 返回移除的元素
}int queue_find(int value) {int i;for (i = 0; i < g_capacity; i++) {if (g_data[i] == value)return i;// 找到元素,返回其索引}return -1;
}void queue_print() {int i;for (i = 0; i < g_capacity; i++) {if (g_data[i] < 0)printf("- ");// 空位打印 `-`else printf("%d ", g_data[i]);    // 打印队列中的元素}printf("\n");
}

stack.h

#ifndef MYC_STACK_H
#define MYC_STACK_Hvoid stack_init(int capacity);int stack_push(int number);int stack_pop();int stack_find(int value);int stack_move_to_top(int index);int stack_pop_bottom();int stack_is_full();#endif //MYC_STACK_H

stack.c

#include <stdlib.h>
#include <stdio.h>static int *g_data = NULL;  // 指向栈数据的指针
static int g_capacity = 0;  // 栈的最大容量
static int g_size = 0;      // 栈中当前元素的数量void stack_init(int capacity) {int i;if (g_data) free(g_data);  // 如果栈已初始化,释放原有内存g_data = (int *)malloc(capacity * sizeof(int));  // 分配内存g_capacity = capacity;  // 设置栈的容量g_size = 0;  // 初始化栈为空for (i = 0; i < g_capacity; i++) {g_data[i] = -1;  // 初始化栈数据为 -1(表示空位)}
}
int stack_push(int number) {if (g_size >= g_capacity) {// 如果栈已满,返回 -1 表示失败return -1;}g_data[g_size] = number;  // 将元素添加到栈顶return g_size++;  // 更新栈的大小

相关文章:

Operating System 实验二 内存管理实验

目录 实验目标: 实验设备: 实验内容: (1)验证FIFO和Stack LRU页面置换算法 【代码(注释率不低于30%)】 【实验过程(截图)】 【结论】 (2)分别用FIFO和Stack LRU页置换算法,自己设定一个页面引用序列,绘制页错误次数和可用页帧总数的曲线并对比(可用Excel绘…...

深入解析YOLO v1:实时目标检测的开山之作

目录 YOLO v1 算法详解​ ​1. 核心思想​ ​2. 算法优势​ ​3. 网络结构&#xff08;Unified Detection&#xff09;​​ ​4. 关键创新​ ​5. 结构示意图&#xff08;Fig1&#xff09;​ Confidence Score 的计算​ 类别概率与 Bounding Box 的关系​ 后处理&…...

windows作业job介绍

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、作业job是什么&#xff1f;二、使用步骤1.代码示例 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; winapi网站&#xff1a; h…...

POLARIS土壤相关数据集

POLARIS相关数据集属于杜克大学&#xff08;Duke University&#xff09;土木与环境工程系&#xff08;CEE&#xff09;的水文学研究团队。该团队有三个总体主题&#xff1a;1&#xff09; 改善地球系统模型中地表异质性的表示&#xff0c;2&#xff09; 利用环境数据来描述在陆…...

【Harmony OS】组件

目录 组件概述 组件常用属性 系统内置组件 Text TextArea 多行文本输入框组件 TextInput 文本输入框 Button Image 图片组件&#xff0c;支持本地图片和网络图片 Radio 单选框 Checkbox 复选框 Blank 空白填充组件 Divider 分隔符 PatternLock 图案密码锁组件 Prog…...

找出字符串中第一个匹配项的下标

题目&#xff1a;28. 找出字符串中第一个匹配项的下标 给你两个字符串 haystack 和 needle&#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1。 …...

专家系统的知识获取、检测与组织管理——基于《人工智能原理与方法》的深度解析

前文我们已经了解了专家系统的基本概念和一般结构&#xff0c;系统中有专业的知识才是专家系统的关键&#xff0c;接下来对专家系统中的知识是如何获取、检测、组织和管理的进行探讨。 1.专家系统的基本概念&#xff1a;专家系统的基本概念解析——基于《人工智能原理与方法》…...

BUUCTF-[GWCTF 2019]re3

[GWCTF 2019]re3 查壳&#xff0c;64位无壳 然后进去发现主函数也比较简单&#xff0c;主要是一个长度校验&#xff0c;然后有一个mprotect函数&#xff0c;说明应该又是Smc&#xff0c;然后我们用脚本还原sub_402219函数处的代码 import idc addr0x00402219 size224 for …...

基准指数选股策略思路

一种基于Python和聚宽平台的量化交易策略&#xff0c;主要包含以下内容&#xff1a; 1. 导入必要的库 - 导入jqdata和jqfactor库用于数据获取和因子计算。 - 导入numpy和pandas库用于数据处理。 2. 初始化函数 - 设置基准指数为沪深300指数。 - 配置交易参数&#xff0c;如使用…...

【阿里云大模型高级工程师ACP习题集】2.5 优化RAG应用提升问答准确度(⭐️⭐️⭐️ 重点章节!!!)

习题集 【单选题】在RAG应用的文档解析与切片阶段,若遇到文档类型不统一,部分格式的文档不支持解析的问题,以下哪种解决方式不可行?( ) A. 开发对应格式的解析器 B. 转换文档格式 C. 直接忽略该类型文档 D. 改进现有解析器以支持更多格式 【多选题】在选择向量数据库时,…...

【torch\huggingface默认下载路径修改】.cache/torch/ 或 .cache/huggingface

问题 服务器的硬盘空间是有限的&#xff0c;系统上的固态硬盘空间又比较小&#xff0c;在跑深度学习模型的时候经常有默认下载权重的操作&#xff0c;不管是torch或者huggingface&#xff0c;如果不加管理&#xff0c;所有的权重都放在home/user/.cache 里面&#xff0c;迟早会…...

SpringBoot 常用注解大全

SpringBoot 常用注解大全 一、核心注解 1. 启动类注解 SpringBootApplication&#xff1a;组合注解&#xff0c;包含以下三个注解 Configuration&#xff1a;标记该类为配置类EnableAutoConfiguration&#xff1a;启用自动配置ComponentScan&#xff1a;组件扫描 2. 配置相…...

【器件专题1——IGBT第2讲】IGBT 基本工作原理:从结构到特性,一文解析 “电力电子心脏” 的核心机制

IGBT&#xff08;绝缘栅双极型晶体管&#xff0c;Insulated Gate Bipolar Transistor&#xff09;作为现代电力电子领域的核心器件&#xff0c;其工作原理融合了 MOSFET 的高效控制优势与 BJT 的大功率处理能力。本文从物理结构、导通 / 关断机制、核心特性等维度&#xff0c;深…...

再谈String

1、字符串常量池 1.1 创建对象的思考 下面是两种创建字符串对象的代码 public static void main1(String[] args) {String s1 "hello";String s2 "hello";System.out.println(s1 s2);//trueString s3 new String("hello");String s4 new …...

语音合成之五语音合成中的“一对多”问题主流模型解决方案分析

语音合成中的“一对多”问题主流模型解决方案分析 引言“一对多”指的是什么&#xff1f;优秀开源模型的方法CosyvoiceSparkTTSLlaSA TTSVITS 引言 TTS系统旨在模仿人类的自然语音&#xff0c;但其核心面临着一个固有的挑战&#xff0c;即“一对多”问题 。这意味着对于给定的…...

嵌入式:Linux系统应用程序(APP)启动参数及其规则详解

在 systemd 的服务单元文件中&#xff0c;[Service] 部分用于定义服务的启动、停止、重启等操作&#xff0c;以及服务的运行环境和参数。以下是 [Service] 部分常见参数及其规则的详细介绍&#xff1a; 服务类型相关参数 **Type** **作用**&#xff1a;指定服务的启动类型&…...

25%甘油(灭菌)保存菌液以及10%甘油(普通)保存蛋白的原理及操作-实验操作系列-010

01 甘油保菌实验原理 1. 渗透压调节 甘油作为渗透压调节剂&#xff0c;能显著降低水的结冰温度&#xff0c;防止低温环境中细菌细胞内冰晶的形成。冰晶会破坏细胞膜&#xff0c;从而损伤细胞的完整性。甘油能够减少冰晶的生成&#xff0c;维持细胞结构的稳定&#xff0c;保护…...

影楼精修-手部青筋祛除算法解析

注意&#xff1a;本文样例图片为了避免侵权&#xff0c;均使用AIGC生成&#xff1b; 手部青筋祛除科普 手部青筋祛除是影楼精修中一个非常精细的工作&#xff0c;需要较高的修图技巧&#xff0c;目前市面上很少有自动化的青筋祛除功能的&#xff0c;而像素蛋糕目测是第一个做到…...

【时时三省】Python 语言----函数

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 1,函数概念 为了实现某种功能而组织的语句集合 定义格式: def 函数名([参数])函数体def add_num(a,b):c = a + bprint(c)add_num(11, 22) def 是定义函数的关键字。定义函数时,需要注意以下问题: 1,不需要说…...

蜜罐管理和数据收集服务器:Modern Honey Network (MHN)

一、Modern Honey Network (MHN)介绍 Modern Honey Network (MHN) 是一个集中化的蜜罐管理和数据收集服务器。它旨在简化蜜罐的部署和管理&#xff0c;并提供一个简洁的 Web 界面来查看捕获的数据。 1、主要功能: 集中化管理: 通过一个中心服务器管理多个蜜罐传感器。快速部…...

关于hbaseRegion和hbaseRowKey的一些处理

我遇到了什么问题&#xff1f; 我的habse一共有三台服务器&#xff0c;其中一台忙的要死&#xff0c;另外两台吃瓜看戏&#xff0c;我的业务都在其中一个服务器上&#xff0c;导致数据的读写瓶颈。 先说一下hbase的概况&#xff0c;有一个整体了解&#xff0c;我们再讲原因。…...

exec和spawn

前言 需求&#xff1a;做一个electron应用&#xff0c;用node打开exe软件&#xff0c;打开后返回成功与否&#xff0c;打开的软件不会随electron应用的关闭而关闭 exec exec 第一个参数为要运行的command命令&#xff0c;参数以空格分隔。 child_process.exec(command[, opti…...

【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十三章 异常处理:超越C错误码的文明时代

一、错误处理的范式革命 1.1 C错误处理的黑暗时代 C语言通过返回值传递错误状态&#xff0c;存在系统性缺陷&#xff1a; 典型错误处理模式&#xff1a; FILE* open_file(const char* path) { FILE* f fopen(path, "r"); if (!f) { return NULL; // 错误信息…...

AD相同网络的铜皮和导线连接不上

出现这样的情况是不是很烦恼&#xff0c;明明是相同的网络连接不上&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f; 直接修改铜皮属性&#xff08;选择所有相同这个选项&#xff09; 这样就可以连接上了...

驱动开发硬核特训 · Day 21(下篇): 深入剖析 PCA9450 驱动如何接入 regulator 子系统

&#x1f4d8; 一、设备树视角&#xff1a;PCA9450 是如何声明的&#xff1f; 设备树中定义了 PCA9450 芯片通过 I2C 总线挂载&#xff0c;并描述了多个 regulator 通道&#xff1a; &i2c1 {pmic25 {compatible "nxp,pca9450c";reg <0x25>;regulators …...

消息队列mq在Mlivus Cloud向量数据库中的关键配置与最佳实践

作为《向量数据库指南》的作者和大禹智库高级研究员,我在30多年的向量数据库实战中深刻认识到:消息队列(MQ)作为现代向量数据库架构的"神经系统",其配置优化直接决定了系统的吞吐量、稳定性和扩展性。本文将基于Mlivus Cloud这一领先的向量数据库平台,深入剖析…...

常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护

常见网络安全攻击类型深度剖析&#xff08;四&#xff09;&#xff1a;跨站脚本攻击&#xff08;XSS&#xff09;——分类、漏洞利用与前端安全防护 在Web应用安全中&#xff0c;跨站脚本攻击&#xff08;Cross-Site Scripting, XSS&#xff09;是攻击者利用浏览器漏洞&#x…...

临床试验中安全性估计策略与应用

1. 安全性估计概述 1.1 安全性估计的定义与重要性 1.1.1 安全性估计的定义 安全性估计旨在准确评估药物或干预措施的安全性特征,涵盖不良事件的发生率、严重程度及与治疗的因果关系等关键要素。 依据 ICH E9(R1) 指南,需明确定义目标人群、伴发事件处理方式及分析策略,为药…...

2025年GPLT团体程序设计天梯赛L1-L2

目录 1.珍惜生命 2.偷感好重 3.高温补贴 4.零头就抹了吧 5.这是字符串题 6.这不是字符串题 7.大幂数​编辑 8.现代战争​编辑 9.算式拆解 10.三点共线 11.胖达的山头 12.被n整除的n位数 1.珍惜生命 【解析】直接输出即可 #include<bits/stdc.h> using namespace…...

AI 场景落地:API 接口服务 VS 本地部署,哪种更适合?

在当前 AI 技术迅猛发展的背景下&#xff0c;企业在实现 AI 场景落地时&#xff0c;面临着一个关键抉择&#xff1a;是选择各大厂商提供的 API 接口服务&#xff0c;还是进行本地化部署&#xff1f;这不仅关乎成本、性能和安全性&#xff0c;还涉及到技术架构、数据治理和长期战…...

cdh平台管理与运维最佳实践

一、容量规划&#xff1a;构建可持续扩展的数据湖底座 1.1 资源评估三维模型 #mermaid-svg-f455GhWoSD6qmLzX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-f455GhWoSD6qmLzX .error-icon{fill:#552222;}#mermaid…...

未来乘用车电气/电子(E/E)架构与商用车电气/电子架构有何不同?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

第25周:DenseNet+SE-Net实战

目录 前言 1.准备工作 2.查看数据 3.划分数据集 4.创建模型 5.编译及训练模型 6.结果可视化 7.总结 前言 &#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 1.准备工作 import torch import torch.nn as nn imp…...

【ESP32-IDF笔记】20-配置以太网网络(W5500)

环境配置 Visual Studio Code &#xff1a;版本1.98.2 ESP32&#xff1a;ESP32-S3 ESP-IDF&#xff1a;V5.4 模块&#xff1a;W5500&#xff0c;SPI通讯协议 组件支持&#xff1a;esp_eth 官方的ethernet 以太网组件 W5500介绍 介绍 W5500 是一款全硬件 TCP/IP 嵌入式以太网…...

python源码打包为可执行的exe文件

文章目录 简单的方式&#xff08;PyInstaller&#xff09;特点步骤安装 PyInstaller打包脚本得到.exe文件 简单的方式&#xff08;PyInstaller&#xff09; 特点 支持 Python 3.6打包为单文件&#xff08;–onefile&#xff09;或文件夹形式自动处理依赖项 步骤 安装 PyIns…...

在vscode终端中运行npm命令报错

解决方案 这个错误信息表明&#xff0c;你的系统&#xff08;可能是 Windows&#xff09;阻止了 PowerShell 执行脚本&#xff0c;这是由于 PowerShell 的执行策略导致的。PowerShell 的执行策略控制着在系统上运行哪些 PowerShell 脚本。默认情况下&#xff0c;Windows 可能…...

Canvas入门教程!!【Canvas篇二】

没有一朵花&#xff0c;从一开始就是花。 目录 translate() 方法&#xff1a;rotate() 方法&#xff1a;scale() 方法&#xff1a; translate() 方法&#xff1a; Canvas 2D API 的 CanvasRenderingContext2D.translate() 方法用于对当前网格添加平移变换。 translate() 方法通…...

windows服务器及网络:搭建FTP服务器

前言&#xff1a;&#xff08;各位大佬们&#xff0c;昨天太忙了&#xff0c;整得没有发布昨天那该写的那一篇&#xff0c;属实有点可惜的说QAQ&#xff0c;不过问题已经解决&#xff0c;我又回来啦&#xff09; 今天我要介绍的是在Windows中关于搭建FTP服务器的流程与方法 注…...

[4A/OP]

2.2 安装程序 2.2.1 解压缩.tar.gz文件 调用UNIX命令tar会在当前目录下创建4A/OP子例程主目录4AOP-1.5/&#xff0c;包括所有必要的子目录。只需键入以下命令即可解压缩和“untar”4AOP-1.5.tar.gz&#xff1a; tar -xzvf 4AOP-1.5.tar.gz4AOP-1.5/目录现在应该已经创建&…...

C++学习之网络攻防以及信息搜索

目录 1.课程安排 2.课程介绍 3.渗透测试 4.ptes渗透测试执行标准的介绍 5.网络攻防环境的介绍 6.kali系统的介绍和调整 7.搜索引擎踩点 8.dnsenum和nslookup 9.whois命令 10.traceroute命令 11.复习 12.traceroute原理 13.telnet命令 14.在线存货ping 15.nmap扫描…...

4.5/Q1,GBD数据库最新文章解读

文章题目&#xff1a;Cross-Country Inequalities in Disease Burden and Quality of Care of Stroke, 1990-2021: A Systematic Analysis of the Global Burden of Disease Study 2021 DOI&#xff1a;10.1111/ene.70050 中文标题&#xff1a;1990 年至 2021 年中风疾病负担和…...

py语法基础理解

条件判断 只有if-else等我语句,Python不支持switch语句 单if语句 if 条件语句: 条件为真时执行的内容 if-else语句 if 条件语句: 条件为真时执行的内容 else: 条件为假时执行的内容 if-elif语句 else if if 条件语句1: 条件语句1为真时执行的内容 elif 条件语句…...

python——异常

1、定义 异常是在代码执行过程中发生的&#xff0c;它会影响到程序的正常运行。python程序不会自动来进行异常处理。python中常见异常父类&#xff1a;Exception。 2、常见异常 TypeError&#xff1a;类型错误异常。ValueError&#xff1a;值的异常。KeyError&#xff1a;键…...

深入理解指针(4)

1.二级指针 如何理解呢&#xff1f; 1.pp的类型是int * * ——二级指针类型 2.p指向a&#xff0c;a的类型是int 3.int * * pp 其中 int * 在说明 pp 是指向 p 的类型 int * ,第二个 * 说明 pp 是指针变量 4.p 1 跳过 4 个字节 &#xff0c; pp 1 跳过 4 或者 8 个字节&am…...

Apipost免费版、企业版和私有化部署详解

Apipost是企业级的 API 研发协作一体化平台&#xff0c;为企业提供 API研发测试管理全链路解决方案&#xff0c;不止于API研发场景&#xff0c;增强企业API资产管理。 Apipost 基于同一份数据源&#xff0c;同时提供给后端开发、前端开发、测试人员使用的接口调试、Mock、自动化…...

小火电视桌面 TV版 老旧历史版本安装包 官方免费下载

如果你还在为小火桌面tv版无法使用而烦恼&#xff0c;四处寻找其他新老版本安装包&#xff0c;那么不妨试试乐看家桌面&#xff0c;它能为你带来全新的电视使用体验。 乐看家桌面的界面简洁纯净&#xff0c;没有繁琐的层级和恼人的广告&#xff0c;大字体、大图标设计&#xff…...

Java常用API详解

本文将系统讲解Java开发中高频使用的工具类API&#xff0c;涵盖数学计算、系统操作、对象处理和大数运算等场景。ps:本文是免费的,如果被csdn锁了,请联系我.如果需要查看更详细的说明,可以查阅javaAPI帮助文档.我本来想直接把API文档整合到文章中方便大家下载,结果csdn这货直接…...

jdk-8u202-linux-x64.tar.gz官方下载地址

https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 点击下载&#xff0c;需要先注册oracle账号&#xff0c;很好注册随便写&#xff0c;注册完登录就可以下载了。目前就Oracle JDK 8u201/202 是最后两个可免费用于商业用途的公开版本...

内联函数(c++)

预处理&#xff1a;优点&#xff1a;内嵌到目标代码&#xff0c;减少函数的调用。 缺点&#xff1a;在预处理阶段完成替换&#xff0c;避免了语义上的差错。 egg&#xff1a; #define SQR(X) ((X)*(X)) 函数&#xff1a;优点&#xff1a;完成了某一类操作的抽象&#xff0c;…...

Python 基础语法与数据类型(四) - 布尔类型 (bool) 与逻辑运算符 (and, or, not) 和类型转换

文章目录 布尔类型 (bool)逻辑运算符 (and, or, not)布尔值的“真值”判断 (Truthiness / Falsiness)类型转换 (Type Casting)总结 在前面的文章中&#xff0c;我们学习了数字类型&#xff08;整型、浮点型&#xff09;和字符串。今天&#xff0c;我们要介绍另一种非常基础且极…...