自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++语言·模板初阶

本节讲解了函数模板和类模板的使用,内容较为简单

2024-04-22 23:22:50 760

原创 C++语言·内存管理

本节内容较为简单,讲解了C++中的内存管方案,用 new-delete 代替了malloc-free ,同时还讲解了new-delete的一些底层实现

2024-04-21 22:29:27 664

原创 C++语言·类和对象(下)

本节主要讲解类和对象中的一些琐碎知识点,重点在于初始化列表的写法和隐式类型转换时的一些小细节以及其优化的思路

2024-04-20 22:54:33 780

原创 C++语言·类和对象

本节详细介绍了C++中类的各个概念,包括定义、用法、this指针、类的6个默认成员函数中的各种重载方、const成员函数、最后实现了一个较为完善的日期类,其中覆盖了本节绝大多数知识点

2024-04-17 19:05:35 1020 1

原创 C++语言·入门

本节讲解了C++学习的一些细碎前置知识,重点在于函数重载和引用

2024-03-31 21:56:57 916

原创 数据结构·排序

本节讲解了各种排序算法,包括直接插入排序、希尔排序、直接选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序。其中详细讲解了希尔排序、快速排序和归并排序,在用分治思想通过递归实现的同时,还尝试用非递归的方式解决,对于快速排序还介绍了三种优化方案

2024-03-24 23:21:46 776

原创 数据结构·二叉树(二)

本节主要讲解了二叉树的各种操作方案,其中最重要的就是用“分治”的思想去解决问题,这个思想非常值得我们思考

2024-03-19 21:50:35 902

原创 数据结构·二叉树(一)

本节介绍了二叉树的概念,基于完全二叉树引出了堆的概念,并着手实现了一个小根堆,最后我们介绍了堆应用中的堆排序和TOP-K问题,堆排序的时间复杂度是跟快排一个量级的,很有意思

2024-03-12 22:15:42 1008

原创 数据结构·栈和队列

本节讲解了栈和队列的内容,其核心就是栈的特点是后进先出,队列的特点是先进先出。并用C语言实现了栈和队列的结构以及它们的各种接口

2024-02-29 23:07:58 947

原创 数据结构·复杂度讲解

本节讲解了时间复杂度和空间复杂度的概念和计算方法,并对时间复杂度展开讲解了几道例题

2024-02-02 19:10:57 1090

原创 C语言·贪吃蛇游戏(下)

本节实现了用C语言编写贪吃蛇游戏

2024-02-01 23:16:43 4389

原创 C语言·贪吃蛇游戏(上)

本节讲解了写贪吃蛇游戏前的一些必要知识,如Win32 API,以及其中的控制台的各种操作函数,光标的操作函数,还有本地化是什么,我们该怎么用

2024-02-01 00:16:16 657

原创 数据结构·双向链表

本节讲解了双向链表的结构,以及实现了一个双向链表及功能,不得不说双向链表比单链表写起来简单多了,没有那么多繁琐的条件判断

2024-01-27 19:35:47 1056 1

原创 数据结构·单链表经典例题

本节讲解了6道链表的经典例题,其中涉及了带头链表和循环链表的使用,以及快慢指针的算法思想

2024-01-25 18:30:06 1192 1

原创 数据结构·单链表

本节重点讲解了单链表的结构和概念,并实现了一个单链表,以及匹配的增,删,查等功能。最后讲解了链表的分类方式,以及基于分类方式分出的8种链表结构的样子。

2024-01-24 20:05:03 1179

原创 数据结构·顺序表经典例题(双指针)

本节讲解了两道顺序表经典例题,题解应用了双指针的思想

2024-01-23 18:31:32 975

原创 数据结构·顺序表应用

本节是继上节的应用,用上节的顺序表做出一个通讯录的功能,当然做的很粗制滥造QAQ,很多功能还等诸位一同开发

2024-01-21 23:57:10 1009

原创 数据结构·顺序表

本章讲解了线性表和顺序表的关系和定义。实现了一个简单的动态顺序表。

2024-01-21 00:50:30 986

原创 C语言·预处理详解

本节讲解了预定义符号的含义。#define定义常量或定义宏的用法和注意事项,关键是其暴力替换的原理可能产生的问题以及解决办法。在定义宏中#和##的意义。#undef取消宏定义。命令行定义不确定大小的参数。条件编译的用法。头文件不同包含方式的意义原理,以及头文件重复包含的危害和解决办法

2024-01-18 14:03:05 1287

原创 C语言·编译和链接

本节讲解了程序是如何通过编译和链接从计算机不认识,不能执行的源文件,变成计算机认识并且可以执行的二进制可执行文件的

2024-01-17 12:17:43 960 1

原创 C语言·文件操作

本节介绍了文件的用处,如何用文件指针打开和关闭文件,流的读写函数fgetc fputc fgets fputs fscanf fprintf fread fwrite,和字符串的的格式化输入输出函数sscanf sprintf控制文件指针实现随机读写的函数fseek ftell rewind,文件结束相关函数feof ferror,文件缓冲区的概念

2023-12-13 23:55:10 998

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

本节介绍了动态内存分配的操作函数 malloc calloc realloc free,动态内存的一些常见错误,柔性数组的声明和使用,还有c/c++中程序内存区域的划分

2023-12-09 13:50:07 815

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

本节讲解了联合体的声明,其内存是如何分配的,联合体相较于结构体的优势是什么,并用一个商店的礼品清单的例子进行展现,巧妙运用联合体展示某个字节中的内容。枚举的声明,优点和实际使用展示

2023-12-02 20:36:04 792

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

本节讲解了结构体的特殊声明、结构体的自引用(链表)、结构体在内存中的对齐规则、通过offsetof宏获取结构体成员的偏移量、通过#pragma修改默认对齐数、结构体传参、位段

2023-12-01 23:06:31 943 1

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

本节介绍了整数和浮点数在内存中是如何存储的,以及大小端字节序和浮点数的比较等

2023-11-30 17:00:47 846

原创 C语言·内存函数

本节讲解了memcpy memmove memset memcmp 函数的意义和使用

2023-11-26 16:30:38 893 1

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

本节讲解了有字符和字符串的各种函数,包含一系列字符分类和转换函数。各种字符串函数strlen strcpy strcat strcmp strncpy strncat strncmp strstr strtok strerror perror

2023-11-25 18:48:18 884

原创 深入理解指针(五)

本节的内容主要是关于指针的大量练习题。

2023-11-22 22:35:33 69 1

原创 深入理解指针(四)

本节讲解了回调函数是什么,qsort库函数的使用

2023-11-18 19:57:12 70 1

原创 C语言·深入理解指针(三)

通过已知的知识,我们知道字符变量的地址可以这么存储当然,还有另一种书写方式。

2023-11-17 16:34:42 35

原创 C语言·深入理解指针(二)

数组名就是首元素地址,当然,有两个例外1. sizeof() 中的数组名指的是整个数组,计算的是整个数组的大小,单位是字节2. &数组名 ,这里的数组名表示整个数组,取出的是整个数组的地址除此之外,任何地方使用数组名,数组名都表示数组首元素地址经过观察上面一段代码打印出来的结果显示,3个地址打印出来是相同的,那 arr 和 &arr 的区别是怎么体现的?事实上,当我们将 地址+1 后就会发现 arr+1跳过了4个字节 而 &arr+1跳过了20个字节,也就是跳过了整个数组。

2023-11-14 23:09:11 37 1

原创 C语言·深入理解指针(一)

我们知道,CUP(中央处理器)在计算的时候是从内存中提取需要的数据,计算完成后再将结果放回内存当中,那这些内存空间是如何高效管理的呢?一个bit(比特位)可以存放一个二进制位,一个byte(字节)可以存放8个bit每个内存单元可以类比成一个8人制宿舍,每个比特位相当于一个铺位每个内存单元都有一个编号(这个编号就相当于宿舍门牌号),有了这个编号,CPU就可以快速找到一块内存空间生活中我们把门牌号叫做地址,计算机中将内存单元的编号也称为地址。C语言中给地址起了一个新名字:指针。

2023-11-11 23:32:41 37 1

原创 C语言·操作符详解

即使有雷操作符的优先级和结合性,写出的代码有时也不能拥有唯一的计算路径,那这个表达式就是有风险的,建议不要写出特别复杂的表达式,尤其在表示中用到自增和自减的时候要格外注意。

2023-11-08 21:50:48 45 1

原创 C语言·函数递归

递归是解决问题的一种方法,在C语言中,函数递归就是自己调用自己史上最简单的函数递归在这段代码中函数main()调用了自己,形成了递归,结果是无限打印了 hehe ,当然如果你尝试运行一下的话会发现程序跑着跑着崩掉了,这是因为这段递归编辑的不合理,导致了栈溢出,从而导致程序崩溃。如何解决这个问题请往下看。

2023-11-04 21:14:00 37 1

原创 VS实用调试技巧

调试就是把错误bug消灭的操作,当然当程序出现bug时我们要狠心的承认自己的编写的程序是不完美的,然后潜下心来找到问题所在,将它完善。

2023-11-02 22:15:20 30

原创 函数·扫雷游戏

首先,扫雷游戏需要一个棋盘存放雷,这个棋盘用数组来定义,在有雷的位置上放1,没有的位置放0,但是在判断周围是否有雷的时候会在棋盘上展示了雷的个数,这时很有可能就产生了歧义,展示出来的数字如果是1的话那下次判断的时候会不会将这里识别成雷,因此我要创建两个棋盘,一个用于存放雷的信息,一个用于展示雷。第二,为了防止如下图出现的蓝色区域数组越界访问,我可以将棋盘的上下左右都延伸出去,变成绿色棋盘的大小,两个棋盘都如此,方便同时操作它们。

2023-10-30 19:33:58 52

原创 C语言·函数

ret_type 是函数返回类型fun_name 是函数名括号中是形参{}括起来的是函数体之前的代码中我都是将函数的定义放在主函数的前面,而这次的代码我将函数放在主函数的后面,这样的话就需要在主函数之前声明这个函数,告诉编译器我的程序中有这个函数。注意:编译器在编译的时候是从上往下扫描的,如果在调用函数之前没有定义的话会报警告C语言中要求函数要先声明再使用函数的定义是一种更强大的声明,所以把函数定义在要使用它之前就不用再特别声明了。

2023-10-29 20:31:16 32 1

原创 C语言·数组

本章讲解了一维数组和二维数组数组的创建原理和使用方法,和其在内存中的存储方案。sizeof关键字的用法。滚动打印和二分查找的练习。

2023-10-25 22:23:39 35 1

原创 C语言·分支和循环(下)(猜数字游戏)

本节的目的在于用之前学到的选择和循环语句为基础,写出一个猜数字游戏。

2023-10-22 22:16:27 55 1

原创 分支和循环(上)

if语句的语法形式如下表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行.(C语言中0为假,语句不执行,非0为真,语句执行)

2023-10-22 20:40:04 42 1

空空如也

空空如也

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

TA关注的人

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