自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux进程优先级】

Linux内核是正常进程之间cpu资源的抢占的,当一个进程的时间片还没结束,如果有优先级更高的进程,是会终止优先级低的进程,执行优先级高的进程的。,时间片结束后这个进程就会停止,执行下一个进程,没有进程是可以一直执行的。我们通过nice命令和renice命令,还有下面两个指令,可以修改进程的优先级。为了让每一个进程能够均衡的得到调度,所以才会把优先级限定在一定的范围内。通过ps -al 指令就可以看到进程的优先级了。在Linux系统中是支持动态优先级调整的。说的并发,必定要考虑进程间切换!

2024-04-25 23:54:12 241

原创 【Linux-进程状态】

在显示器上只是我们肉眼看到了代码在不断打印,打印本质是往显示器上打印,在冯诺依曼体系当中,你的进程是在内存里的,说白了就是将内存里的数据不断向外设进行刷新,当你刷新的时候,你的外设不一定是准备好的。当我们的进程要向磁盘写入数据时,在进程等待的过程中,如果操作系统内存紧张,会杀掉进程,节省资源。当我们磁盘中的可执行文件加载到内存中的时候,操作系统会对其产生相应的pcb,当这个程序运行的时候,就会将它的pcb加载到运行队列中。我们的代码中,一定会或多或少的访问系统中的某些资源,例如:磁盘,键盘,网卡等。

2024-04-25 00:15:04 782

原创 【操作系统】(Operator System)

校长想对学生的信息进行管理,就可以创建一个有关学生信息的数据结构,再将每一个数据结构用链表链接起来,此次往后,校长发现,对学生的管理,就转化成为了对链表的增删查改。校长是学校的管理者,他下达命令要管理学生信息后辅导员就会执行命令,收集学生信息后给校长,而学生则是被动的接收管理指令。操作系统是为用户提供良好服务的,用户再广义上指:所有人。操作系统一定有很多的功能,那么这些功能都能让用户使用吗?就像银行一样,不相信我们,却还要为我们提供服务。在学校我们几乎没有见到过校长,那么校长是如何管理学校的呢?

2024-04-19 00:05:56 361

原创 【Linux冯诺依曼体系结构】

当我们通过键盘将信息输入到计算机中,计算机的输入端接收到信息后,把信息加载到内存中,内存与CPU交互将信息转化为特定格式的文件后再传给内存,由内存传给网卡,再由对方的输入设备网卡接收,将数据加载到内存中,内存再传给CPU,CPU进行解释后再传给内存,内存传到他的输出设备上显示器,这样子对方就接受到信息了。所以,一般我们都要把运行的数据加载到内存中,让CPU和内存打交道,这样的效率就会大大提高,而CPU和内存打交道的时候,外设依旧可以将运行的数据传输到内存中,实现双线作战。我们常见的计算机,如笔记本。

2024-04-18 23:20:35 560

原创 【Linux项目自动化构建工具-make/Makefile】

我们发现,当我们用make指令形成可执行程序之后,再次输入make程序就不会重新编译了,只有当文件被修改之后才能再次被make。因为程序的编译是需要消耗很多的资源的,这样做可以避免浪费。若源文件的修改时间大于code.c文件的修改时间,make指令就可以重新编译形成可执行文件。当我们多次修改文件的Access时间,发现它的时间只有在第一次发生了变化,为什么呢?通过源文件和code.c文件的修改时间做对比,可以体现出源文件的新旧。makefile是怎么做的不让我们编译我们的代码的呢?

2024-04-16 00:36:30 627

原创 【Linux编译器】gcc/g++的使用

所以静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。我们先创建一个code.cc文件,编译好自己的代码,然后用g++编译一下,就会形成a.out文件,这就是我们的可执行文件。我们的计算机语言是经历了一个发展的过程的,从刚开始的二进制打孔,然后产生了汇编语言,再产生c语言。我们所写的代码都是站在巨人的肩膀上,已经有人跟我们写好了对应的可以直接使用的函数了,这些函数在哪里呢?程序的翻译过程分为:预处理,编译,汇编,链接4大部分。

2024-04-14 23:25:29 886

原创 [C++]六大默认成员函数详解

(C++11 中针对内置类型成员不初始化的缺陷,又打了补丁,即:内置类型成员变量在类中声明时可以给默认值。

2023-11-27 21:02:21 1753 27

原创 [C++] 类与对象(上)

一.面向过程和面向对象初步认识🌸作者简介:目前正在学习C++和Linux一.面向过程和面向对象初步认识我们之前学习的c语言是面向过程的语言,分析出求解问题的步骤,通过函数调用逐步解决问题就像我们把手洗衣服分成一个个步骤,然后逐步完成而C++是一种面向对象的语言,将一件事情拆分成不同的对象,靠对象之间的交互完成。就像洗衣服可以分为四个对象,每个对象只需要完成自己的任务即可。二.类的引入。

2023-10-24 13:59:17 311 27

原创 [C++] C++入门

C++入门

2023-10-22 22:17:46 710 21

原创 【数据结构】队列详解

🌸作者简介:目前正在学习C语言和数据结构。

2023-05-19 17:37:00 2170 41

原创 【数据结构】栈的详解

栈的结构体其实和顺序表差不多,一个动态开辟的数组,一个栈的容量。注意 top 我们要决定它指向栈顶还是栈顶的下一个元素。如果top初始化为0,则它指向栈顶的下一个元素。如果top初始化为-1,则它指向栈顶元素。我比较喜欢初始化为0,1是top还可以表示元素的个数,可以用来判断栈是否满了。2是插入元素的时候直接在top的位置插入就行,然后再top++即可。这里根据大家喜好设定就行。int top;} ST;

2023-05-17 18:35:09 2579 37

原创 【数据结构】带头双向循环链表的实现

虽然链表的结构有很多种,但我们实际中最常用的还是无头单向不循环链表和带头双向循环链表。无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了,后面我们代码实现了就知道了。

2023-05-13 11:23:24 683 36

原创 【数据结构】链表详解

在前面我们已经学习过了有关顺序表的知识,但是我们知道顺序表是存在着一些问题的中间/头部的插入删除,时间复杂度为O(N)增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。所以我们能不能寻求其他的解决方案?不扩容按需申请释放解决头部或者中间插入删除需要挪动数据的问题。

2023-05-07 16:50:24 1065 46

原创 最简单的循环

表达式语句函数调用语句控制语句复合语句空语句本章后面介绍的是控制语句。顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。条件判断语句也叫分支语句:if语句、switch语句;循环执行语句:do while语句、while语句、for语句;转向语句:break语句、goto语句、continue语句、return语句。

2023-05-03 18:31:39 863 26

原创 scanf老是出错?带你详细解决输入缓冲区问题

我们一般在进行输入输出的时候,就会用到 scanf / printf。并且根据格式指定可以输入输出各种类型的数据。可以输入整形,字符,浮点型等其他类型的数据。今天呢我先给大家再介绍一下 getchar 和 putchar.

2023-04-28 17:40:46 1993 34

原创 合并两个有序链表

我们可以创建两个空指针,head用来存放链表的头结点,tail用来遍历两条链表,将两条链表链接起来。首先我们能够想到的就是。是不是听着挺简单的?

2023-04-26 20:23:27 609 32

原创 移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你。,将不等于val的节点。首先我们能想到的就是。

2023-04-25 00:09:44 460 40

原创 让你立刻学会指针

指针是内存中一个最小单元的编号,也就是地址

2023-04-21 18:24:51 907 39

原创 【数据结构】顺序表详解(附leetcode练习题)

线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…

2023-04-19 19:15:18 749 63

原创 【数据结构】算法的时间复杂度和空间复杂度(下)(附leetcode练习题)

🌸作者简介:目前正在学习C语言和数据结构。

2023-04-16 00:00:14 1269 63

原创 深度剖析数据在内存中的存储

char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数 //C语言有没有字符串类型?以及他们所占存储空间的大小。有了这些类型是不是就足够了呢?其实不是啊,所以我们后面才有了更多的结构体之类的介绍使用这个类型开辟内存空间的大小(大小决定了使用范围)。类型不同,它们的取值范围就不同,范围不同就使得我们在使用的过程中更加灵活。我们想用多大的空间,就可以用一个多大的类型。

2023-04-14 17:01:26 887 38

原创 【数据结构】算法的时间复杂度和空间复杂度 (上)(附leetcode练习题)

衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间

2023-04-11 00:09:43 858 47

原创 超详细——动态内存分配+柔性数组

C语言提供了一个内存开辟的函数:malloc可以向内存申请一块连续的空间,并返回一个指向这块空间的指针如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器举个例子这样我们就开辟了一个20个字节的空间。

2023-04-05 12:37:01 1082 53

原创 【C语言】一下让你懂得如何进行文件操作

各位csdn的朋友大家好呀,在学习C语言的过程中,我们可以通过写不同的代码来存放不同的数据。在程序运行时,数据是存放在内存当中的,但是当程序关闭时,数据自然就消失了。所以今天我要和大家分享的是如何将数据存放在文件中的知识哦 !

2023-03-30 22:07:09 499 40

原创 [C进阶]静态通讯录的实现

在上一次我们学习了有关自定义类型中的所有知识,今天我们就来尝试一下实现一个静态的通讯录,后续我也会与大家分享动态通讯录的实现,大家不要迷路哦

2023-03-26 14:05:19 242 15

原创 自定义类型:位段,枚举,联合

在学习完了自定义类型中的结构体之后,还有三种自定义类型需要我们去学习,今天就由我来给大家介绍一下自定义类型中的位段,枚举和联合

2023-03-25 17:44:57 151 11

原创 自定义类型:结构体

今天我们要讲的是自定义类型中的结构体。曾经呢我们也学习过一些类型,比如说char,short, int,float,long等,这些呢都是我们的一些类型,而这些类型呢我们叫内置类型,即C语言本身就具有的一些类型,不是我们所创造出来的,可以直接使用。除了这些呢,C语言还允许我们自己创建一些类型,这些类型就是自定义类型。它允许我们创建哪些类型呢,第一种类型就是结构体类型,再下来就是联合体(共用体),还有枚举类型。这些都是允许自己创建的类型。今天我们讲的就是结构体类型。

2023-03-18 20:59:44 230 15

原创 向大厂offer进发

大家好,我是小泽同学。我来自河南的一所双非二本院校,正以大厂为目标而努力奋斗。虽然我现在还是一个啥也不会的小菜鸡,但是从现在开始,我要努力奋斗,踏入人生的新篇章。 目标 我曾经对自己的未来感到迷茫,但是今天我立下一个目标,学好C/C++以及相关的计算机知识,多练习编程,在未来的校招中取得满意的offer。学习计划 坚持在gitee上每天输送代码,每周都要坚持写博客并在csdn上传,跟好学校的专业课,在大二学习中将计算机语言,算法和数据结构,操作系统,计算机网络,项目实战学好。

2023-02-25 13:52:47 144 9

空空如也

空空如也

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

TA关注的人

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