自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux--常见指令

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。功能:touch命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。:对于目录,该命令列出目录下的所有子目录与文件。Linux系统重,磁盘上的文件和目录被组成一颗目录树,每个节点都是目录或文件。:改变工作目录,将当前工作目录改变到指定的目录下。

2024-04-27 14:36:15 729

原创 类与对象(上)

/ 类体:由成员函数和成员变量组成// 注意分号class为定义类的关键字ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。public://显示基本信息public:char* _sex;int* _age;类声明放在.h文件中,成员函数定义放在.cpp文件中,

2024-04-16 20:38:39 810

原创 数据结构--树和二叉树

设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。:若一个节点含有子节点,则这个节点称为其子节点的父节点;:以某节点为根的子树中任一节点都称为该节点的子孙。:一个节点含有的子树的根节点称为该节点的子节点;:具有相同父节点的节点互称为兄弟节点;:一个节点含有的子树的个数称为该节点的度;:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;

2024-04-06 22:11:45 1016

原创 C++入门

定义命名空间,需要使用namespace关键字,后面跟命名空间的名字 然后接一对{} 即可,{}中即为命名空间的成员// 命名空间中可以定义变量/函数/类型。

2024-03-27 21:59:06 851

原创 数据结构--栈和队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出入队列;队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组结构,出队列在数组头上出数据,效率会比较低。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一点。因为数组在尾上插入数据的代价比较小。栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。压栈:栈的插入操作叫做进栈/压栈/入栈,栈中的数据元素遵守后进先出的原则。出栈:栈的删除操作叫做出栈。

2024-03-11 21:35:31 649 2

原创 数据结构--算法的时间复杂度和空间复杂度

时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数,空间复杂度计算规则基本跟时间复杂度类似,也使用。即:找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度。执行了(N*(N+1))/2次,时间复杂度一般看最坏为0(N^2)最开始区间个数是N,找一次做小一般,那就是除2,找了多少次呢?二分查找的本质是缩小区间,最开始是N个数,找一次缩小一半。

2024-03-05 23:20:00 1035

原创 C语言--贪吃蛇

Windows这个多作业系统处了谢眺应用程序的执行、分配内存、管理资源之外,它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序,所以便简称为API函数,WIN32 API也就是32位平台的应用程序编程接口。

2024-02-25 22:12:23 5103 4

原创 数据结构--双向链表专题

注意:这里的“带头”跟前面我们说的“头结点”是两个概念,为了更好的理解直接称为单链表的头结点。带头链表里的头结点,实际为“哨兵位”,哨兵位节点不存储任何有效数字,知识站在这里“放哨”注意,双向链表是带有哨兵位的,插入数据之前链表中必须要先初始化一个哨兵位。双向链表中不需要二级指针:双向链表中的phead(哨兵位)不可能为空。即哨兵位是不能删除也不能修改的,即不能对哨兵位进行任何操作。当链表中只有哨兵位节点的时候,我们称该链为空链表。遍历循环链表避免死循环。

2024-02-22 21:15:51 383

原创 数据结构之链表经典算法QJ题目

在罗⻢⼈占领乔塔帕特后,39 个犹太⼈与Josephus及他的朋友躲到⼀个洞中,39个犹太⼈决定宁愿死也不要被⼈抓到,于是决定了⼀个⾃杀 ⽅式,41个⼈排成⼀个圆圈,由第1个⼈开始报数,每报数到第3⼈该⼈就必须⾃杀,然后再由下⼀ 个重新报数,直到所有⼈都⾃杀⾝亡为⽌。定义两个链表:大链表和小链表,遍历原来的节点将其放入对应的新链表中,最后将大链表和小链表的首尾相连。定义新链表,遍历原链表找不为val的节点,尾插在新链表中。分别记录前驱结点,当前节点,后继节点,改变原链表指针方向。slow指针每走一步。

2024-02-22 20:45:28 685 1

原创 数据结构——单链表专题

图中指针变量plist保存的是第一个节点的地址,我们称plist此时“指向”第一个节点,如果我们希望plist“指向第二个节点时,只需要修改plist保存的内容为0x0012FFA0。链表中每个节点都是独立申请的(即需要插入数据时才去申请一块节点的空间),我们需要通过指针变量来保存下一个节点位置才能从当前节点找到下一个节点。、非连续的存储结构,数据元素的逻辑顺序是通过链表中的。单链表中提到的“头结点”指的是第一个有效的节点。“带头”链表里的“头”指的是无效的节点。链表是由一个一个的节点组成的。

2024-02-18 21:29:35 1053

原创 数据结构——顺序表专题

数据结构是由“数据”和“结构”两词组合而来的。数据:常见的数值、网页中肉眼可见的信息,这些都是数据。结构:当我们想要使用大量同一类型的数据时,通过手动定义大量的独立的遍历对于程序来说,可读性非常差,我们可以借助数组这样的数据结构将大量的数据组织在一起,结构也可以理解为组织数据的方式。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间在一种或多种特定关系的数据元素的集合。数据结构反映数据的内部构成,即数据由那部分构成,以什么方式构成,以及数据元素之间呈现的结构。

2024-02-15 20:23:02 1082

原创 C语言之预处理详解

C语言设置了一些预定义符号,可以直接使用,预定义福海也是在预处理期间处理的int main()//当前被编译文件的路径//文件被编译的日期//文件被编译的时间//文件当前的行号//说明VS不支持ANSIC基本语法:#define M100for;;//死循环break;case// 如果定义的 stuff过⻓,可以分成⼏⾏写,除了最后⼀⾏外,每⾏的后⾯都加⼀个反斜杠(续⾏符)。printf;) //死循环 # define CASE break;

2024-02-11 16:59:03 1251

原创 C语言之:编译和链接

我们在test.c文件中每一次使用ADD函数和g_val的时候必须知道ADD 和g_val的地址,但是由于每个文件都是单独编译的,在编译器编译test.c的时候并不知道ADD函数和g_val变量的地址,所以暂时把调用ADD的指令的目标地址和g_val的地址搁置。前面的我们非常简洁的讲解了一个C的程序是如何编译和链接,到最终生成可执行程序的过程,其实很多内部的细节无法展开细说:比如:目标文件格式的elf,链接底层实现中的空间和地址分配,符号解析和重定位等。静态语义分析包括声明和类型的匹配,类型的转换等。

2024-02-10 14:26:49 654 1

原创 C语言之文件操作

磁盘上的文件是文件但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。

2024-02-09 13:33:31 1393

原创 C语言之动态内存管理

栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等堆区:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表数据段(静态区):存放全局变量、静态数据。程序结束后由系统释放代码段:存放函数体(类成员函数和全局函数)的二进制代码。

2024-02-07 14:28:53 1134 1

原创 C语言之自定义类型:联合和枚举

上述的结构其实这几的很简单,用起来也方便,但是结构的设计包含了所有礼品中的各种属性,液氧使得结构体大小就会偏大,比较浪费内存。因为对于礼品兑换单中的商品来说,只有部分属性信息是常用的。所有我们就可以把公共属性单独写出来,剩余各种商品本身的属性使用联合体起来,这样就可以介绍所需的内存空间,一定程度上节省了内存。联合的成员是共用同一块内存空间的,这样一个联合变脸的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)。在C语言中是可以的,但是在C++是不行的,C++的类型检查比较严格。

2024-02-06 15:09:59 689

原创 C语言之自定义类型:结构体

位段的成员必须是int、unsigned int 或signed int,在C99中位段成员的类型也可以选择其他类型位段的成员名后边有一个冒号和一个数字struct Aint _a : 2;int _b : 5;int main()//8A就是一个位段类型。位段A所占内存的大小是8字节。

2024-02-05 22:56:53 779

原创 C语言之数据在内存中的存储

其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。上述概念需要记住,方便分辨大小端。

2024-02-04 15:32:02 992

原创 C语言之内存函数

memset是用来设置内存的,将内存的值以字节为单位设置成想要的内容。比较ptr1和ptr2指针指向的位置开始,向后的num个字节。momcpy 拷贝的就是不重复的内存。memmove 拷贝的就是重复的内存。

2024-02-03 15:22:31 640

原创 C语言之字符函数和字符串函数

在不同的系统和C语言标准库的实现中都规定了一些错误代码,一般是放在errno.h这个头文件说明的,C语言程序启动的时候就会使用一个全面的变量errno来记录程序的当前错误码,只不过程序启动的时候erron是0,存放在erron中,而一个错误码的数字是整数很难理解是什么意思,所以每一个错误码都是有对应的错误信息的。\0 --------------> \ddd形式的转义字符,本质也是0,一般字符串的末尾会有\0是字符串的结束标志。//将参数传进去的大写字母转小写。0 --------------> 数字0。

2024-02-03 13:38:27 673 1

原创 C语言之深入理解指针(5)

指针题目练习

2024-02-01 14:00:28 683 1

原创 C语言之深入理解指针(4)

如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数。回调函数不是由该函数的实现方式直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。在修改后的代码,我们把调用的函数的地址以参数的形式传递过去,是函数指针接受,函数指针指向什么就调用什么函数,这里其实使用的计算hi回调函数的功能。在之前写的计算器的实现的代码中,有些代码是重复出现的,其中虽然执行计算的逻辑是区别的,但是输入输出。的指针,讲解void。

2024-01-31 14:59:21 363

原创 C语言之深入理解指针(3)

二维数组传参,形参的部分可以写成数组,也可以写成指针形式。

2024-01-30 15:42:31 702 1

原创 C语言之深入理解指针(2)

移位数组传参,形参的部分可以写成数组的形式,也可以写成指针的形式。

2024-01-29 16:07:28 667

原创 C语言之深⼊理解指针(1)

指针的类型决定了指针向前或者向后走一步有多大(距离)。

2024-01-28 16:40:22 898 1

原创 C语言之操作符

/代码1:变量的定义int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//代码2:初始化struct Stu//姓名int age;//年龄//初始化//指定顺序初始化//代码3int data;//结构体嵌套初始化//结构体嵌套初始化。

2024-01-26 20:25:04 753

原创 C语言—打印菱形

分别找出上半部分和下半部分的规律。

2023-11-14 16:33:16 24

原创 打印水仙花数0-100000

水仙花数”是指一个n位数,其各位数字的n次方之和等于该数的本身,如:153=1^3 + 5^3 + 3^3,则153是一个水仙花数。求出0-100000之间的所有“水仙花数”并输出。

2023-11-13 13:52:23 27

原创 C语言—喝汽水问题

1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以和多少汽水?输出时现将买到和花去钱的数量一致的汽水+每次递归空瓶换到水的个数。

2023-11-09 19:58:58 41 1

原创 C语言—汉诺塔问题

规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘,将其移动至柱子的最右侧。先递归从A柱借用C柱移动到B柱(一至三步)再递归从B柱借用A柱移动到C柱(四至七步)打印A移动至C中(第三步和第四步)

2023-11-09 00:09:45 26 1

原创 C语言—青蛙跳台

一只青蛙一次最少可以跳1层台阶,一次最多可以跳2层台阶,求:该青蛙跳上n层的台阶总共有多少种跳法?当n>=3时,F(n)=F(n-1)+F(n-2)以上的1,2,5,8…

2023-11-08 21:38:37 42 1

原创 C语言之函数递归

递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。//main 函数中又调用了main函数return 0;代码最终会陷入死循环,导致栈溢出。递归的思想:把一个大型复杂问题层层化为一个与原问题相似,但规模较小的子问题来求解;直到子问题不能被拆分,递归就结束了。所以递归的思考方式就是把大事化了的过程。递归中的递就是递推的意思,归就是回归的意思。

2023-11-08 20:50:50 34 1

原创 C语言——二分查找函数方式

定义key为要查找数字(假设要查找的数字为7),用循环不断调整left , right以及mid从而锁定进行判断比较,若arr[mid]等于key,则返回下标值,否则继续循环比较。(3)经过比较,arr[mid]=8 大于了key的值,则说明目标元素在中间元素的左边,需将right重置为mid-1,rleft不变。(2)经过比较,arr[mid]=5 小于了key的值,则说明目标元素在中间元素的右边,需将left重置为mid+1,right不变。(4)最后发现arr[mid]=key,所以找到了。

2023-11-06 14:48:19 226

原创 C语言—VS使用调试技巧

bug 本意是“昆虫” 或“虫子”,现在一般是指在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题,简称程序漏洞。当我们发现程序中存在的问题的时候,那下一步就是找到问题,并修复问题。这个找问题的过程叫称为调试,英文名叫debug(消灭bug)的意思。调试一个程序,首先是承认出现了问题,然后通过各种手段去定位问题的位置,可能是逐过程的调试一个程序,也可能是隔离和屏蔽代码的方式,找到问题所在的位置,然后确定错误产生的元婴,再修复代码,重新测试。

2023-11-03 12:27:08 54

原创 C语言—扫雷游戏的简单实现

【代码】【无标题】

2023-11-02 20:13:48 48 1

原创 C语言之函数

了解了库函数,我们的关注应该聚焦在自定义函数上,自定义函数其实更加重要,也能给程序员写代码更多的创造性。函数的调⽤⼀定要满意,先声明后使⽤;函数的定义也是⼀种特殊的声明,所以如果函数定义放在调⽤之前也是可以的。

2023-10-30 00:02:57 29 1

原创 C语言之数组

C语言数组

2023-10-26 18:52:44 30

原创 C语言之分支循环语句

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构。

2023-10-24 23:14:51 37

原创 第一篇博客

学校:上海市电子信息职业技术学院专业:信息安全应用技术目前是大二的学生(贯通,一上来便是大二),时间紧张,课程繁琐,还有将近一年半的时间即将实习。

2023-10-24 20:59:37 29 1

空空如也

空空如也

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

TA关注的人

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