自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 C语言数组与指针

本文系统梳理了C语言中数组与指针的核心概念及区别: 数组与指针本质区别:数组是固定大小的连续内存块,数组名是常量指针;指针变量存储地址,可重新赋值。sizeof对数组返回总大小,对指针返回地址长度。 字符串处理:字符数组可修改内容,指针直接赋字符串常量则不可修改。strlen计算字符数(不含\0),sizeof计算内存占用(含\0)。 二级指针要点:必须逐级指向,不可跨级操作。正确示例展示了二级指针通过指针链访问变量的完整过程。 指针数组与数组指针:指针数组元素均为指针;数组指针指向整个数组,其步长以数组为

2025-07-29 20:41:24 1008

原创 计算机操作系统知识点总结④【完】

本文摘要:文章介绍了计算机I/O设备的分类方法,重点从资源分配角度将其分为独占、共享和虚拟设备。阐述了DMA数据传输方式的工作流程,包括CPU指令、进程调度、数据传输和中断处理等步骤。同时分析了引入缓冲技术的必要性,详细说明了单缓冲、双缓冲和缓冲池的结构特点,以及缓冲池通过空缓冲区队列、输入队列和输出队列进行管理的具体方法。该内容涉及操作系统设备管理和数据传输的核心机制。

2025-06-05 16:51:28 269

原创 计算机操作系统知识点总结③

计算机操作系统核心概念摘要(150字) 本文梳理了操作系统中的关键存储管理和文件系统概念。存储管理部分介绍了地址空间类型、地址再定位的静态/动态方法及其优缺点,请求分页管理的虚拟内存实现,"抖动"现象及处理方法,常见页面置换算法比较。文件系统部分定义了逻辑/物理记录、存储块等基础概念,阐述了文件系统的五大功能,区分了文件的逻辑/物理组织方式,并说明了四种文件存储形式。最后指出文件目录的核心作用是方便用户定位文件。这些概念构成了操作系统管理计算机资源的理论基础。

2025-06-05 16:49:47 624

原创 计算机操作系统知识点总结②

本文摘要:主要介绍了计算机操作系统中进程的相关概念。内容包括进程的组成(程序、数据集合、进程控制块)及其作用,进程的三种基本状态(运行、就绪、阻塞),常用进程调度算法,以及原语的概念。同时阐述了作业、进程和程序的关系与区别,重点讨论了死锁问题,包括死锁的定义、产生原因、必要条件,以及预防和处理死锁的各种策略(如破坏资源互斥性、非剥夺控制等)。整个内容系统性地概述了操作系统进程管理的核心知识点。

2025-06-04 20:59:30 361

原创 C语言-指针基础概念

本文介绍了C语言中指针的基本概念和应用场景。主要内容包括:指针的定义与声明方法,指针变量存储的是地址而非实际值;指针作为函数参数时可以实现对变量的访问和修改,并通过实例演示了指针访问、修改变量值的操作;指针的常见应用场景如交换变量值、函数返回多个结果等;还指出scanf函数必须传入地址参数,否则会导致运行时错误。指针是C语言中实现间接访问和修改数据的重要机制,正确使用指针可以提升程序的灵活性和效率。

2025-06-04 20:55:25 429

原创 计算机操作系统知识点总结①

操作系统是管理计算机软硬件资源的系统软件,具有并发、共享、虚拟和不确定性特征。其核心功能包括处理机管理、存储管理、设备管理、文件管理和用户接口。操作系统提供命令接口、程序接口和图形接口三类用户交互方式,并支持通过命令文件实现自动化任务。系统调用作为程序访问系统服务的接口,提供资源管理、进程控制等功能。分时系统允许多用户轮流使用计算资源,而作业管理涉及作业步处理和工作流组织。操作系统既作为资源管理器提升效率,又作为虚拟机简化用户操作。

2025-06-03 16:52:17 440

原创 计算机操作系统-名词解释

本文简要解释了计算机操作系统的关键概念,主要包括:操作系统是管理计算机软硬件资源的程序集合;进程是程序运行的动态过程;分时系统允许多用户轮流使用计算机资源;存储管理涉及地址空间、逻辑/物理地址转换等;文件系统负责文件的按名存取和管理;I/O控制包括DMA方式和多种缓冲技术(单缓冲、双缓冲、缓冲池)。此外还定义了作业管理、系统调用、死锁等重要术语。这些概念构成了操作系统的基本框架和核心功能。

2025-06-03 16:46:16 511

原创 【2】C语言基础-结构体(2)

本文介绍了C语言中结构体的typedef用法及结构体数组的定义方法。主要内容包括: typedef用于为现有类型创建别名,在结构体中可以简化变量声明; 结构体数组的两种定义方式:先声明后定义,或在声明同时定义; 结构体数组的初始化方法与普通数组类似; 提供了两个实际案例:统计学生成绩和查找最高分学生; 总结了结构体作为自定义数据类型的特点,其成员变量使用与普通变量相同。 文章通过代码示例展示了结构体在实际编程中的应用,特别说明了typedef在简化结构体声明方面的作用。

2025-05-28 10:00:00 752

原创 【1】C语言基础-结构体(1)

本文介绍了C语言结构体的基本概念和使用方法。结构体是一种由用户自定义的复合数据类型,可以包含不同类型的数据成员。文章详细讲解了结构体的定义语法、三种变量定义方法(先声明后定义、同时声明定义、直接定义匿名结构体变量),并通过学生信息管理案例演示了结构体的实际应用。重点强调了结构体成员的访问方式("."运算符)和初始化方法。结构体的使用可以更灵活地组织和管理复杂数据,是C语言中重要的数据类型构造工具。

2025-05-27 15:36:55 933

原创 Linux基础40-C语言篇之变量的生命周期与传递【入门级】

也就是 传递的是数据,可以理解为形参和实参访问数据的内容空间是独享的。地址传递:通过地址可以实现类似引用传递的效果,即允许函数内部修饰实参的值,传递的是地址,可以理解为形参和实参访问数据的内存空间是共享的。寄存器存储类型:只能修饰局部变量,用register修饰的局部变量会直接存储到CPU的寄存器中,往往将循环变量设置为寄存器存储类型。auto存储类型只能修饰局部变量,被auto修饰的局部变量是存储在动态存储区的。1.static修饰局部变量,延长其生命周期,但不影响局部变量的作用域。

2025-03-25 09:00:00 2041

原创 Linux基础39-C语言篇之函数变量作用域【入门级】

我们在函数设计的过程中,经常要考虑对于参数的设计,换句话说,我们需要考虑函数需要几个参数,需要什么类型的参数,但我们并没有考虑是否需要提供参数,如果说函数可以访问到已定义的数据,则不需要提供函数形参。答案就是变量的作用域(如果函数在变量的作用域范围内,则函数可以直接访问数据,无需提供形参)总结:我们发现弊大于利,建议尽量减少对全局变量的使用,函数之间要产生联系,仅通过实参+形参的方式产生联系。建议在全局变量定义时初始化,如果不初始化,系统会对全局变量初始化(初始化的值是0)

2025-03-24 09:00:00 422

原创 Linux基础38-C语言篇之函数的递归调用【入门级】

如果a数组中的元素大于b数组中的相应元素的数目多于b数组中元素大 于a数组中相应元素的数目(例如,a[i]>b]i]6次,b[i]>a[i] 3次,其中i每次为不同的值),则 认为a数组大于b数组,并分别统计出两个数组相应元素大于、等于、小于的个数。来接收(函数实参是数组,形参 一定是数组或者指针),注意的是,此次传递并不代表传递了数组中所有的元素数据,而是传递了 第一个元素的内存地址(数组首地址),形参接收到这个地址后,则形参和实参就代表了同一个块 内存空间,则形参的数据修改会改变实参的。

2025-03-23 09:00:00 826

原创 Linux基础37-C语言篇之函数的声明与调用【入门级】

③若使用自定义函数,自定义函数又在主调函数的后面,则应在主调函数中对被调函数进行声明,生命的作用是把函数名、幻术参数的个数和类型等信息通知编译系统,以便于在遇到函数时,编译系统能正确识别函数,并检查函数调用的合法性。注意:如果涉及函数的相互嵌套调用,或者复杂嵌套调用,此时是无法区分函数的前后的,这就需要函数声明。注意:如果函数的调用比较简单,并且被调函数写在主调函数之前,此时是可以省略函数声明的。嵌套调用:在被调函数内又主动去调用其他函数,这样的函数调用形式,称之为嵌套调用。

2025-03-22 09:00:00 1082

原创 Linux基础36-C语言篇之函数Ⅱ(形参与实参)【入门级】

(本质上所有函数都有一个return,只不过当我们的函数返回类型是void得时候,return是隐式的)

2025-03-21 10:18:20 527

原创 LInux基础35-C语言篇之函数Ⅰ【入门级】

函数:实现一定功能的,独立的代码模块。我们的函数一定是先定义,后使用。使用函数的优势:①我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数,减少代码量。②借助函数可以减少重复性代码。③实现结构化(模块化)程序设计思想。关于结构化设计思想:将大型的任务功能划分为相互独立的小型任务任务模块来设计。函数是C语言程序的基本组成单元:C语言程序是由一个(必然是main函数)或多个函数组成。[返回类型]函数名([形参列表]) ---函数头|函数首部函数体语句;

2025-03-03 12:01:14 716

原创 C语言综合案例:学生成绩管理系统

1.存储最多50名学生的信息(不使用结构体)

2025-03-02 20:29:49 1211

原创 Linux基础34-C语言篇之字符串的基本操作【入门级】

数组是有序数据的合集。数组中的所有元素都必须是同类型的。用一个统一的名字和下标来唯一地确定元素在数组中的位置。在程序中把循环和数组结合起来,对数组元素进行操作,可有效地处理大批量的数据。正确定义数组。注意:数组下标默认从0开始,防止下标越界。注意数组的定义形式和数组元素的引用形式的本质区别。二维数组元素在内存中按行存储。初始化时,按行赋值。C语言中无字符串变量,字符串是以字符数组形式存放的。系统在每个串尾自动加一个串结束符‘\0’,但‘\0’不是字符串的组成部分。

2025-03-01 17:07:59 842

原创 Linux基础33-C语言篇之字符串的基础操作【入门级】

​ 从键盘录入一个字符串常量到字符数组,返回字符数组的地址(首地址,默认返回的地址,一般用12位16进制数表示)​ 从键盘录入一个字符串常量到字符数组,返回字符数组的地址(首地址,默认返回的地址,一般用12位16进制数表示)​ ③经过对比,我们发现,在字符串输入中,fgets和scanf相比,fgets友好一些。​ 采用fgets进行字符串输入,可获取所有输入的字符串,包含。​ 采用gets进行字符串输入,可获取所有输入的字符串,包含。,在实际的字符串处理时,我们可能需要处理。​ 字符串可以包含转义字符。

2025-02-28 21:41:30 467

原创 Linux基础32-C语言篇之二维数组案例与字符数组【入门级】

的ASCII码是0,不是一个可显示的字符,是“空操作符”,它什么都不做,不会增加有效字符,仅是一个工程判别的标志。我们的char数组可以以数组的形式一个个输出每个字符:我们的char数组也可以以字符串的方式整体进行输出所有字符。③如果提供的字符个数与数组长度相同,可以省略数组长度,系统会自动确定元素个数,适合字符较多时。字符数组的语法就是我们前面所学的一维数组和二维数组的语法,只不过数组的类型是char而已。​ 如果我们的数组char数组初始化的时候,没有完全初始化值的时候,空出来的地方使用。

2025-02-27 21:06:42 929

原创 Linux基础31-C语言篇之二维数组【入门级】

二维数组本质上是一个行列式的组合,也就是说二维数组由行和列俩部分组成。属于多维数组。二维数组数据时通过行和列进行解读的。二维数组可被视为一个特殊的一维数组,相当于二维数组又是一个一维数组,只不过它的元素是一维数组(也就是说数组的元素的类型可以是数组类型)

2025-02-26 17:01:17 552

原创 Linux基础30-C语言篇之冒泡排序【入门级】

1 2 3 4(第1轮比4次)5 -1 -0= 4 5-0。1 2 3(第2轮比3次)5 - 1 -1 = 3 5 -1。1 2 (第3轮比2次)5 -1 -2 = 2 5-2。1 (第4轮比1次)5 - 1 -3 = 1 5-3。原始数列:12345->54321。

2025-02-26 16:59:16 428

原创 Linux基础29-C语言篇之一维数组【入门级】

数组是相同类型,有序数据的集合。类型说明符/数据类型 数组名[数组的容量]说明:数组的类型说明符由数组中的元素来决定,类型说明符也就是数据类型,元素是什么类型,数组就是什么类型。同一个数组中,所有元素的类型都是一致的。数组名就是标识符,我们所说的数组(名),大祭司可以理解为数据类型是数组的变量(名)。命名规则与变量名相同,遵循标识符命名规则(标识符命名规则:不能以数字开头,只能包含数字、字母、下划线)。数组容量也可以叫做常量表达式或者元素个数,其值必须为整型,可以包含常量和符号常量,但不能是变量。

2025-02-24 11:21:17 1025

原创 C语言综合案例:猜拳游戏1.0

【代码】C语言综合案例:猜拳游戏1.0。

2025-02-23 20:37:24 385

原创 Linux基础28-C语言篇之循环结构Ⅱ【入门级】

跳出多层循环是不能直接使用break和continue实现的,因为它们只能跳出单层循环,跳出多层循环,需要我们自当一定的标志位进行跳出(标志位也可以配合break使用)从第二个数据项开始,依次于该变量进行比较,如果大于/小于该变量,则将当前数据项的 数据赋值给该变量。功能:continue语句不会结束整个循环,而是跳过本次循环尚未执行的语句,进入下一次循环。注意:如果是多层循环(嵌套循环),进的时候是从外到内,跳出的时候是从内到外。需求:小明参与运算符考试,如果考试及格,就跳出循环,否则就一直考。

2025-02-22 19:09:35 1867

原创 Linux基础27-C语言篇之循环结构Ⅰ【入门级】

代码在满足某种条件的前提下,重复执行,就叫做循环结构。

2025-02-21 09:23:28 1035

原创 Linux基础26-C语言篇之分支结构Ⅲ【入门级】

⑤case后面的语句若无break语句,则执行完本case语句后会接着执行下面的case,直到遇到下面的break为止。②若表达式的值与某个常量表达式的值相等时,执行此case后面的语句;若没有相等的值时,执行default后面的语句。①switch后括号内的表达式可以是任意类型的表达式,但是表达式的值尽量是。③每个case后面的常量表达式的值必须不相同,否则出现矛盾。需求:按照考试成绩的等级输出百分之分数段。需求:若要求按照百分制考试分数输出等级。需求:若要求按照百分之考试分数输出等级。

2025-02-20 10:52:17 535

原创 Linux基础25-C语言之分支结构Ⅱ【入门级】

即在语句1与语句2中有可以包含完整的if语句或者if…​ 若表达式的值为1,则执行语句1;不管条件表达式成不成立都需要执行一个语句,其次需要注意的是,语句1和语句2都可以是单语句或者复合语句。2.创建一个变量max,用来存放a,b,c中得最大值,默认a是最大值(这样可以减少一次判断)​ ①如果表达式1的结果为真,就执行表达式2,否则就执行表达式3。​ ②三目运算符的写法实际上就是单语句的双分支语句的缩略写法。else结构中的语句1和语句2都可以是复合语句。else结构中,语句1和语句2都可以是空语句。

2025-02-19 22:17:09 1134

原创 Linux基础24-C语言之分支结构Ⅰ【入门级】

注意:在C语言中,用1(非0)表示关系表达式的值为真(条件成立),0表示关系表达式的值为假(条件不成立),即关系表达式的值要么为1(条件成立),要么为0(条件不成立)。实际上,逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0,而且也可以是字符型、实型和指针型等。(逻辑非)-> 算术运算符(±*/%) -> 关系运算符(>、<、>=、<=、!条件判断的结果是逻辑值(布尔类型值,也就是说分支语句的条件可以使用关系表达式和逻辑表达式),在程序中用真(1)和假(0)来表示。=0,&&就是一种逻辑运算符。

2025-02-18 20:52:51 563

原创 Linux基础23-C语言篇之输入输出缓冲机制扩展【入门级】

在使用fflush(stdin)来清空输入缓冲区时,需要注意这是未定义行为,在标准C中并不推荐这种做法。在处理输入时,特别是连续输入多个数据时,需要注意缓冲区中可能残留的数据,这可能会影响后续的输入操作。辗转相除法:将需要转换的数据不停的除以转换的进制数,直到商为0。借助于二进制,将八进制转换为二进制,将二进制转换为十六进制。借助于二进制,将十六进制转换为二进制,将二进制转换为八进制。我们目前接触到的进制有 二进制、八进制、十进制、十六进制。

2025-02-17 13:59:18 1167

原创 Linux基础22-C语言篇之流程控制Ⅲ【入门级】

显然,这个程序中的第二个格式输出语句的结果是错误的,这是因为在第二个格式输出语句中,格式说明符%d是基本整型格式说明符,而输出项目是双精度型的数据,它们不是匹配的。若输入语句 scanf(“a=%d,b=%d,c=%f,d=%f”,&a,&b,&c,&d);若输入语句为 scanf(“%d,%d,%f,%f”,&a,&b,&c,&d);若输入语句为 scanf(“%d%d%f%f”,&a,&b,&c,&d);现要利用格式输入函数输入a=12,b=78,c=12.5,d=7.6。输出结果:c6,0xc6。

2025-02-16 21:25:23 2124

原创 Linux基础21-C语言篇之流程控制Ⅱ【入门级】

C程序是以函数为基础单位的。一个函数的执行部分是由若干条语句组成的。C语句都是用来完成移动的操作任务。C语句必须依赖于函数存在。

2025-02-16 21:20:45 524

原创 Linux基础20-C语言篇之流程控制Ⅰ【入门级】

广义地说,为解决一个问题而采取的方法和有限的步骤,就称为“算法”。例如:​ 将大象放进冰箱的算法就可以如下描述:​ 打开冰箱门-把大象装进去-关闭冰箱门。

2025-02-14 19:34:36 608

原创 Linux基础19-C语言篇之运算符Ⅱ【入门级】

右侧的结果不会影响最终的结果,最终的结果就是左侧的结果,右侧压根不会执行,这种现象称之为短路效果(短路或),这是C语言中提供的一种。与(逻辑与)双目(二元)运算符,当左右两侧的数据都为真时,最终的结果才为真(有假则为假)。说明:双目运算符,对于运算符左右的两个数,对应的二进制数据为都为1时,结果为1,否则为0。说明:双目运算符,对于运算符左右的两个数,对应的二进制数据为有一个1,结果为1,否则为0。说明:双目运算符,对于运算符左右的两个数,对应的二进制数据为数据相同,结果为0,不同为1。

2025-02-13 09:00:00 1277

原创 Linux基础18-C语言篇之运算符Ⅰ【入门级】

​ 4、一般浮点型进行比较,建议将两个数相减,结果和0进行比较,如果等于0,表示两个浮点数相等。执行赋值运算的结果,使将右边的数据存入左边变量对应的内存单元中,赋值运算的顺序:自右向左。字符型->整型变量:放在整型的低8位,保持原值不变的规则,例如:int a = ‘A’:加减乘除取余运算符(双目运算符:由两个运算数),注意:进行除法运算时,除数不能为0。2.增1与减1运算符不能用于常量护着表达式,例如:–5,(i+j)++等都是非法的。表示在使用该运算符对象之前,先让运算数自身增1或者减1,然后再使用,

2025-02-12 20:34:21 1051

原创 Linux基础17-C语言篇之整数在内存中的存储【入门级】

对于有符号数,内存要区分符号位和数值位,对于人脑来说,很容易辨别,但是对于计算机来说, 就要设计专门的电路,这无疑增加了硬件的复杂性,增加了计算的时间。另外,加法和减法也可以合并为一种运算,就是加法运算,因为减去一个数相当于加上这个数 的相反数,例如,5 - 3 等价于 5+(−3),10−(−9)等价于 10+9。相反数是指数值相同,符号不同的两个数,例如,10 和 -10 就是一对相反数,-98 和 98 也是 一对相反数。练习:求 +9和-7的补码,+128,-200,512,-18 补码。

2025-02-11 23:19:23 1069

原创 Linux基础16-C语言篇之运算符及类型转换扩展【入门级】

自动类型转换是编译器根据上下文自动进行的类型转换,遵循一定的规则。强制类型转换需要程序员明确指定目标类型,使用(type)语法进行转换。使用强制类型转换时需要谨慎,以避免数据丢失和精度损失。理解并正确使用这两种类型转换是编写C语言程序的基础。

2025-02-10 17:39:51 1003

原创 Linux基础15-C语言篇之基本类型数据【入门级】

指数形式:一般数学上对于小数可以以10为底进行表示 比如3.14 * 10²,但是在使用英文 半角输入法的时候没办法输入上底或者下底,所以C语言规定以字母e或者E来表示指数,并 且要求字母e或者E的前面必须有数字,字母e或者E的后面必须为整数。由此可见 ,在内存中字符数据的存储形式与整型数据类似,这就使得字符型数据和整型数据之间可以通用,也就是1个字符数据既可以以字符形式输出,也可以以整数形式输出。将一个字符常量存入一个字符变量,实际上并不是把该字符本身存入单元中,而是将该字符对应的ASCII码存入单元。

2025-02-09 19:04:26 1084

原创 Linux基础14-C语言篇之变量与标识符【入门级】

在为长整型变量初始化或者赋值时,如果被赋值的数据为基本整型常量,则c编译系统自动将被赋值数据转换成与响应变量类型一致。也就是标识符就是对象的名字。用类型说明语句定义的变量只是说明了为这些变量分配了存储空间,以便于存放与之相同的类型,变量代表内存中具有特定属性的一个存单元,它是用来存储数据的,也就是存放变量的值。由于各种整型变量所占的字节数有限,因此,他们所能存储的整数有一定的范围。在c语言中,要求对所用到的变量使用前必须强制定义,即先定义,后使用。基本类型,我们创建变量的同时在内存中开辟对应的内存空间。

2025-02-08 13:47:10 601

原创 Linux基础13-C语言篇之数据类型及常量与变量【入门级】

数据类型其实是固定大小内存的别名,并且描述了一个变量存放什么类型的数据,简单来说,就是组织和操作数据。数据:计算机要处理的数据(数字、字符串、文字、符号、图片、音频、视频等)数据类型不仅帮助我们组织和操作数据,还决定了程序如何有效的利用内存。了解数据类型的内存需求是理解计算机管理和操作数据的关键。小贴士:程序的运行需要用到内存。

2025-02-07 09:54:34 1010

原创 Linux基础12-C语言篇之基本结构【入门级】

功能:要求在控制台输出"hello world!程序结构分析:函数首部(函数头)/函数说明{..}

2025-01-27 20:45:25 566

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除