自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux lesson4】基础IO

本文介绍了Linux系统中的文件I/O机制。在Linux中,所有I/O设备都被抽象为文件,文件操作包括属性操作和内容操作。文件描述符是整数索引,默认0-2分别对应标准输入、输出和错误输出。文章解释了文件描述符分配规则,并通过关闭标准输出重定向到文件的例子演示了重定向原理。同时阐述了"一切皆文件"的设计理念,所有硬件设备都通过统一的文件接口操作。最后讨论了缓冲区的概念,包括全缓冲、行缓冲和无缓冲三种类型,指出缓冲区由C标准库实现以提升I/O效率。整个系统通过抽象文件概念简化了I/O操作和管

2025-11-12 18:00:00 696

原创 【Linux lesson3】进程控制

本文主要介绍了Linux系统中进程管理的五个关键方面:1) 虚拟地址空间机制,通过页表实现虚拟与物理地址映射;2)进程创建中的fork系统调用和写时拷贝技术;3)进程终止的退出码机制;4)进程等待方法wait/waitpid及其状态获取;5)进程程序替换的exec函数族。内容涵盖从进程创建到终止的全生命周期管理,重点解析了操作系统如何通过虚拟内存、写时拷贝等技术实现进程隔离和资源共享,并详细说明了进程间通信和控制的系统调用接口。

2025-11-11 18:00:00 662

原创 【Linux lesson3】进程概念

本文系统梳理了计算机系统的核心原理:从奠定现代计算机基础的冯·诺依曼体系结构讲起,阐释其“存储程序”思想及如何通过存储器平衡CPU与I/O设备的速度差异。接着深入剖析操作系统的角色与机制,包括其通过“先描述,再组织”的方式管理硬件,以及系统调用与库函数的关系。文章重点讲解了进程的概念,详细描述了进程的PCB、状态(如运行、睡眠、僵尸与孤儿进程)、标识符、创建机制(fork)、优先级与调度算法(O(1)算法),以及进程切换的上下文保护,最后简要介绍了命令行参数和环境变量的作用与全局特性。

2025-11-01 18:00:00 694

原创 【Linux lesson2】Linux开发工具

本文概述Linux开发工具:vim为命令行文本编辑器,支持输入、命令等模式(如dd删行、yy复制);gcc/g++编译C/C++代码(常用gcc源文件-o目标文件);makefile实现自动化编译(定义依赖关系与方法);git用于版本控制(clone、add、commit、push保存历史)。

2025-10-05 18:00:00 283

原创 【Linux lesson1】初识Linux系统

本文系统介绍了Linux操作系统的基础知识和核心概念,分为两大部分。第一部分详细讲解了Linux常用基本指令及其使用方法,包括网络配置、文件与目录操作、文件管理、文本搜索、压缩工具以及文件传输工具。每个指令都提供了语法说明和常用选项,帮助用户快速掌握日常操作。第二部分深入解析了权限管理机制,包括用户分类、权限的表示方法权限修改命令以及权限对不同文件类型的影响。特别强调了粘滞位的概念,解释了其在防止非拥有者删除文件中的重要性。整体内容结构清晰,便于初学者理解和应用Linux系统管理技能。

2025-09-29 18:00:00 1130

原创 c++|类和对象(中)

和其他函数一样,它也具有其返回类型和参数列表以及函数体。重载运算符函数的参数个数和该运算符作用的运算对象数量一样多。一元运算符有一个参数,二元运算符有两个参数,二元运算符的左侧运算对象传给第一个参数,右侧运算对象传给第二个参数。如果一个重载运算符函数是成员函数,则它的第一个运算对象默认传给隐式的this指针,因此运算符重载作为成员函数时,参数比运算对象少一个。运算符重载以后,其优先级和结合性与对应的内置类型运算符保持一致。不能通过连接语法中没有的符号来创建新的操作符:比如operator@

2024-12-18 18:00:00 1566

原创 C++|类和对象(上)

c++中,什么是类和对象,类和对象的关系究竟是怎样的?

2024-12-06 18:00:00 1391

原创 C++入门基础

C++与C语言不同的小语法有哪些?相较于C,C++做了哪些优化?

2024-12-05 18:00:00 729

原创 数据结构:排序

八大排序分别是哪些?快速排序有哪些缺陷?什么是非比较排序?什么是自省排序?

2024-11-23 18:00:00 840

原创 数据结构:栈和队列

什么是栈和队列,他们又是如何实现的。栈和队列练习:括号匹配问题,循环队列,栈实现队列,队列实现栈

2024-11-21 18:00:00 610

原创 数据结构:二叉树

什么是树?什么是二叉树?二叉树和堆排序有什么关系?

2024-11-20 20:49:18 597

原创 时间复杂度与空间复杂度

时间复杂度与空间复杂度是什么,他们是如何计算的

2024-11-20 18:00:00 1113

原创 C语言进阶|双链表

双链表,全称带头双向循环链表,与单链表有什么区别?它又是如何定义的?我们如何写出自己的双链表?

2024-04-30 18:00:00 286 1

原创 C语言进阶|链表经典OJ题

这次我们利用双指针解决了关于链表的一些OJ题

2024-04-29 18:00:00 380

原创 C语言进阶|单链表的实现

什么是链表?什么是单链表?他们之间是什么关系?单链表又是如何实现的?

2024-04-25 18:00:00 1228

原创 C语言进阶|两道顺序表经典算法题

今天给大家带来了两题顺序表的OJ题,每一题都用了两种方法,其中的双指针相较之下是最优的方法。

2024-04-24 18:00:00 971

原创 C语言进阶|通讯录的实现

顺序表如何在实际问题中运用?今天我们通过一个简单的通讯录项目来学习运用顺序表。

2024-04-20 18:00:00 366

原创 C语言进阶|顺序表

顺序表和线性表的关系是什么?我们如何自己写出顺序表?顺序表各个接口的代码是怎样的?

2024-04-10 18:00:00 467 1

原创 零基础自学C语言|文件操作

我们怎么通过写代码,用C语言操作外部文件呢?文件的读写函数又有哪些?如何正确使用他们?什么是文件的缓冲区?怎么判断文件是否读取结束?

2024-03-27 18:00:00 1709

原创 零基础自学C语言|动态内存管理

什么是动态内存分配,有什么用?什么是柔性数组?关于这类的经典笔试题解析。

2024-03-15 18:00:00 1149

原创 零基础自学C语言|自定义类型:联合与枚举

什么是联合体?与结构体有什么区别?又有什么用呢?什么是枚举类型?枚举类型有什么优点?又是怎么使用的呢?

2024-03-13 18:00:00 570

原创 零基础自学C语言|自定义类型:结构体

什么是结构体?结构体的大小又是怎么计算的?结构体应该如何传参?什么是位段?如何正确使用位段?

2024-03-11 18:00:00 1026

原创 零基础自学C语言|数据在内存中的存储

在内存中,数字是如何存储的?整数与小数的存储有什么不同?什么是大端小端?

2024-03-01 18:00:00 968

原创 零基础自学C语言|内存函数

给你两块内存,如何将一块内存复制到另一块?如果它们之间有重叠的部分又怎么办?如何比较它们的大小?我们可以通过内存函数实现。

2024-01-30 18:00:00 342 2

原创 零基础自学C语言|字符函数和字符串函数

大家好!😁😁,在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语言标准库中提供了一系列库函数,接下来我们就学习一下这些函数。,希望大家都能看懂,多多点赞👍👍

2023-12-18 21:46:21 1056 3

原创 零基础自学C语言|大厂指针笔试题

大家好!😁😁,今天这篇主要是对前面指针知识的巩固,同时也见识了一下大厂的指针笔试题,每题我都给出了自己的分析过程希望大家都能看懂,多多点赞👍👍

2023-12-14 19:34:10 626 1

原创 零基础自学C语言|深入理解指针 ④

大家好!😁😁今天这篇指针是最后一篇了,主要就介绍了回调函数,顺便深入理解了qsort排序,还利用冒泡排序,学会实现自己的qsort函数。内容不是很多,但是很重要,希望大家都能看懂,多多点赞👍👍

2023-12-06 14:38:39 1181 4

原创 零基础自学C语言|深入理解指针 ③

大家好!😁😁今天这篇指针有点难,你能不能看懂呢?这篇指针主要介绍了 1.数组指针变量2.函数指针变量3.函数指针数组 这三个比较复杂的概念,其中还拓展了字符指针变量、二维数组传参的本质、函数指针数组的应用等概念,希望我们一起加油,共同进步。💪💪

2023-12-04 21:14:00 1183 1

原创 零基础自学C语言|深入理解指针 2

这里我们使用&arr[0]的方式拿到了数组第一个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址,我们来做个测试。运行结果:我们发现数组名和数组首元素的地址打印出的结果一模一样,。

2023-11-30 18:00:00 1252 2

原创 零基础自学C语言|指针(1)

我们知道计算上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那我们买电脑的时候,电脑上内存是8GB/16GB/32GB等,那这些内存空间如何高效的管理呢?其实也是把内存划分为一个个的内存单元,每个内存单元的大小取1个字节。计算机中常见的单位(补充):一个比特位可以存储一个2进制的位1或者01byte(字节)=8bit(比特)1KB=1024byte(字节)1MB=1024KB1GB=1024MB1TB=1024GB1PB=1024TB。

2023-11-28 18:00:00 1102

原创 零基础自学C语言|操作符详解

C语言已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类型还是不够的,假设我想描述学生,描述一本书,这时单一的内置类型是不行的。描述一个学生需要名字、年龄、学号、身高、体重等;描述一本书需要作者、出版社、定价等。C语言为了解决这个问题,增加了结构体这种自定义的数据类型,让程序员可以自己创造适合的类型。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针,甚至是其他结构体。int x;

2023-11-23 18:00:00 148

原创 零基础自学C语言|函数的递归与迭代

递归是学习C语言函数绕不开的一个话题,那什么是递归呢?递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。上述就是一个简单的递归程序,只不过上面的递归只是为了演示递归的基本形式,不是为了解决问题,代码最终也会陷入死递归,死循环地打印hello,最终导致栈溢出(Stack overflow)。

2023-11-21 18:00:00 224

原创 零基础自学C语言|简易版扫雷

在写扫雷前,我们要写出一个菜单,方便玩家选择退出或者开始游戏:我们要在玩家输入错误的选项时让玩家重新选,同时,玩家在玩完一把游戏后可以选择再玩一把,这种效果可以用循环实现。

2023-11-15 14:48:40 93

原创 零基础自学C语言 11|函数

了解了库函数,我们的关注度应该聚焦在自定义函数上,自定义函数其实更加重要,也能给程序员写代码更多的创造性。其实自定义函数和库函数是一样的,形式如下:ret_type fun_name(形式参数)ret_type是指函数的返回类型fun_name是指函数名括号中但是形式参数{}中的是函数体我们可以把函数想象成小型的一个加工厂,工厂得输入原材料,经过工厂加工才能生产出产品,那函数也是一样的,函数一般会输入一些值(可以是0个,也可以是多个),经过函数内的计算,得出结果。

2023-11-09 18:00:00 123 1

原创 零基础自学C语言 10|数组的介绍

数组是多个相同类型元素的集合。从这个概念中,我们不难看出:·数组可以存放一个或多个数据,但不能为零·数组中存放的多个数据,但是它们的类型是相同的。数组一般被分为一维数组和多维数组,而多维数组中较多用的是二维数组。

2023-11-05 18:00:00 216 2

原创 零基础自学C语言 练习|猜数字游戏的实现

电脑会随机生成一个1~100的数字,玩家输入一个数。若玩家输入的数比随机数大,电脑会提示“太大啦”;若玩家输入的数比随机数小,则电脑会提示“太小啦”,直到玩家猜出电脑生成数视为游戏胜利。

2023-11-04 18:00:00 117 1

原创 零基础自学C语言|break、continue、goto语句和随机数的实现

在C语言中,当某些情况发生时,我们需要提前终止循环,这是C语言中经常发生的事。因此,C语言为我们提供了break和continue语句来应对这种情况。break语句:用于终止循环,break执行后,就会跳出循环,继续执行循环之后的语句。continue语句:用于跳过本次循环,continue执行后,就会跳过continue语句之后的代码,直接开始下一次循环。在for语句和while语句中稍有差异。

2023-11-03 18:00:00 199 1

原创 零基础自学C语言 07|switch语句

除了if语句,C语言还提供了switch语句来实现分支结构。switch语句是一种特殊的if...else结构,用于判断多个结果的情况,它把多重的if...else改成了更易用,可读性更好的形式。语法形式如下:上述的代码中,根据表达式(expression)返回的值,来决定走哪条case分支,如果返回的值没有对应的分支,那么就走default分支switch后的表达式必须是整型表达式case后的表达式必须是整型常量表达式。

2023-11-01 18:00:00 199 1

原创 零基础自学C语言 08|while、for、do while循环

C语言为我们提供了三种循环语句,while就是其中一种,接下来就介绍一下while语句。

2023-10-31 19:09:21 155 1

原创 零基础自学C语言 06|关系,条件,逻辑操作符的介绍

C语言中用于比较的表达式叫做“关系表达式”,里面的操作符就被称为关系运算符,关系运算符主要有下面六个:> 大于运算符< 小于运算符>= 大于等于运算符ba=ba

2023-10-31 18:00:00 248 2

空空如也

空空如也

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

TA关注的人

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