自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++奇迹之旅:vector使用方法以及操作技巧

C++ 标准库中的是一个动态数组容器,能够存储并管理元素的集合。它提供了动态调整大小的能力,并且在底层维护一个连续的存储区域,使得元素可以通过索引进行快速访问。模板参数T:向量中存储的元素的类型。Allocator:用于分配内存的分配器类型,默认是。就像数组一样,向量对其元素使用连续的存储位置,这意味着也可以使用指向其元素的常规指针上的偏移量来访问其元素,并且与数组中的元素一样高效。但与数组不同的是,它们的大小可以动态变化,它们的存储由容器自动处理。在内部,向量使用动态分配的数组来存储其元素。

2024-05-22 17:33:25 769 2

原创 string的模拟全实现

前面我们学习了string的用法,本节我们将实现string的模拟实现,话不多说,直接上手,因此我们先了解我们是多文件进行编写,因此需要注意命名空间的控制,这是文件分布图:OK,我们开始~

2024-05-14 23:59:17 1320 8

原创 C++奇迹之旅:C++内存管理的机制(进阶篇)

我们先看malloc与free,调试可以发现并不会调用析构函数class Apublic:: _a(a)~A()private:int _a;return 0;再看new和deletedelete p2;new/delete和最大区别是new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数而对于内置类型几乎是一样的free(p3);delete p4;这是汇编一览图:此时多出来了一个。

2024-05-03 08:00:00 2618 35

原创 【linux学习指南】linux指令与实践文件编写

本节阿森将和你一起深入浅出的学习简单几条指令,快速上手在linux写代码,同时更好的理解指令记忆pwd:显示用户当前所在的目录管理员(root)普通用户linux登录系统后,默认登进去的是用户的主目录,类似window登录系统,当你在按进去用户,可以选择用户,再点击第一个,这相当于root,可以看到用户下面有很多目录和文件,包括桌面也是相当于目录,此时如果你的用户有多个账号,也相当于linux的多用户,剩下就是普通用户,默认的所在目录为、home/普通用户名ls 指令:-l 列出文件的详细信息。

2024-05-02 15:35:55 2148 99

原创 【linux学习指南】linux 环境搭建

CentOS (Community Enterprise Operating System) 是一个基于 Red Hat Enterprise Linux (RHEL) 的免费和开源的 Linux 发行版。它以其稳定性、安全性和企业级功能而闻名,这使它成为服务器和企业级应用程序的热门选择。双系统虚拟机云服务器(轻量级应用云服务器)本节将介绍使用云服务器搭建linux操作系统,我们上节提到linux有许多版本,这一节使用的是CentOS发行版本。

2024-05-01 20:13:44 1337 8

原创 【linux学习指南】初始linux

学习Linux系统编程,你可能要问Linux从哪里来?它是怎么发展的?在这里简要介绍Linux的发展史。要说Linux,还得从UNIX说起。1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。1969-1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础上开发了UINX系统。

2024-05-01 12:05:46 786 2

原创 C++奇迹之旅:初始化列表与explicit

在创建对象时,编译器通过调用构造函数,给对象中各个变量一个合适的初始值虽然上面构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化,构造函数体中的语句只能将其称为赋初值,这和我们之间常常说的给缺省值其实就是赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。初始化列表:以一个冒号开始,接着是一个逗号分隔的数据成员列表,每个“成员变量”后面跟一个放在括号的初始化或表达式为什么要有初始化列表来赋初值,不能直接给缺省值,或者传参吗?由于const必

2024-04-22 22:28:01 6197 120

原创 C++奇迹之旅:赋值运算符重载与隐式类型转换

运算符重载是C++中的一个重要特性,他允许我们为自定义的类型定义自己的运算符行为。通过运算符重载,我们可以使用与内置数据类型相同的语法来操作自定义类型,从而提高代码的可读性和可维护性。还是我们熟悉的日期函数:然后我们定义两个日期对象d1和d2:当你想要比较两个对象d1和d2的数据是否一样,这是通常的比较方法:创建一个专门的比较函数来比较两个对象是否相同。很明显的可以看出这是个比较函数,能不能直接通过像内置类型那样来比较相同呀,因此运算符重载就来了:C++为了增强代码的可读性引入了运算符重载,运算符

2024-04-20 11:09:41 2690 100

原创 C++奇迹之旅:深入思考拷贝构造函数

实践中总结:1、如果没有管理资源,一般情况不需要写拷贝构造,默认生成的拷贝构造就可以。如:Date2、如果都是自定义类型成员,内置类型成员没有指向资源,也类似默认生成的拷贝构造就可以。如: MyQueue3、一般情况下,不需要显示写析构函数,就不需要写拷贝构造4、如果内部有指针或者一些值指向资源,需要显示写析构释放,通常就需要显示写构造完成深拷贝。如:Stack Queue List等。

2024-04-18 21:51:53 2417 15

原创 C++奇迹之旅:构造函数和析构函数

如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。🌠 构造函数🌉 概念对于以下Date类:对于Date类,可以通过 Init 公有方法给对象设置日期,但如果每次创建对象时都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,以保证每个数据成员

2024-04-17 18:46:51 1403 17

原创 C++奇迹之旅:隐含的this指针

在编程中,有一个特殊的指针叫做指针,它在类的成员函数中扮演着重要的角色。本文将从一个简单的例子开始,逐步探讨指针的概念、作用和用法。我们先来定义一个日期类 对于上述类,有这样的一个问题:类中有 与 两个成员函数,函数体中没有关于不同对象的区分,那当调用 函数时,两个类和调用的是同一个函数,该函数是如何知道应该设置对象,而不是设置对象呢?我们先看一个打印函数print(),里面访问的成员变量是哪里的,是private声明下的吗?其实不是,这里只是声明,没有分配空间,访问的是类对象d1,d2各

2024-04-15 19:57:00 1684 21

原创 C++奇迹之旅:探索类对象模型内存的存储猜想

上回我们学习了类的定义,初步了解了什么是类?publicprivateprotected,本小节将讲解类的实例化,类对象模型的猜想存储,及三种简单类的计算。在 C++ 中,类的实例化是指创建一个类的对象。当我们定义了一个类之后,就可以根据这个类创建出多个对象。这个过程就称为类的实例化。

2024-04-10 17:53:04 6682 129

原创 C++奇迹之旅:我与类和对象相遇

/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。我们定义一个学生类:姓名,性别,年龄。int name;int sex;int age;在定义成员变量时,为了避免与函数参数名称混淆,通常会在成员变量前加上下划线_作为前缀。这样可以很方便地区分成员变量和函数参数。

2024-04-08 23:26:32 1802 14

原创 我的C++奇迹之旅:内联函数和auto关键推导和指针空值

内联函数是一种编译器优化技术,它可以将函数的代码直接插入到函数调用的地方,而不是通过函数调用的方式。这样可以减少函数调用的开销,提高程序的执行效率。举个例子,当你在一个项目中,想要频繁调用一个Add函数当你调用一千次,一万次,函数栈帧相应的要建立这么多次,对于代码空间和时间考虑,消耗大,也浪费。此时,你肯定在想到中的宏来在代码进行预处理解决当然你也要注意括号问题,在使用宏定义时需要格外小心,因为宏定义是在编译时进行替换的,如果定义不当可能会导致一些意料之外的行为,避免出现以下有关括号写法问题:代码测

2024-04-06 18:43:56 2093 23

原创 我的C++奇迹之旅相遇:支持函数重载的原理

函数重载概念函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。//参数类型不同//参数个数不同void f()//参数类型顺序不同1. 通过这里就理解了C语言没办法支持重载,因为同名函数没办法区分。而C++是通过函数修饰规则来区分,只要参数不同,修饰出来的名字就不一样,就支持了重载。

2024-03-31 17:12:11 2925 143

原创 【C++的奇迹之旅(二)】C++关键字&&命名空间使用的三种方式&&C++输入&输出&&命名空间std的使用惯例

C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面、IO方面、函数方面、指针方面、宏方面等。为后续类和对象学习打基础。定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。1. 正确的命名空间定义//正确的命名空间定义//命名空空间中可以定义变量/函数/类型int data;

2024-03-29 19:46:37 1644 70

原创 【排序算法】深入解析快速排序(霍尔法&&三指针法&&挖坑法&&优化随机选key&&中位数法&&小区间法&&非递归版本)

快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定。霍尔法是一种快速排序中常用的单趟排序方法,由霍尔先发现。它通过选定一个基准数`key`(通常是第一个元素),然后利用双指针`left`和`right的`方式进行排序,`right`指针先找比`key`基准值小的数,`left`然后找比`key`基准值大的数,找到后将两个数交换位置,同时实现大数右移和小数左移,当`left`与`right`相遇就排序完成,然后将下标`ke

2024-03-23 21:00:05 2091 86

原创 【排序算法】插入排序与选择排序详解

选择排序是一种简单直观的排序算法。它的工作原理如下:在未排序序列中找到最小(大)元素,交换到起始位置,该元素为已排序序列的起始元素,继续在剩余未排序元素中找到最小(大)元素,交换到未排序序列起始位置,重复第二步,直到所有元素均排序完毕。在元素集合array[i]–array[n-1]中选择关键码最大(小)的数据元素,若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换,在剩余的array[i]–array[n-2](array[i+1]–array[n-1])集合中,重

2024-03-22 17:14:14 2303 21

原创 【算法与数据结构】深入二叉树实现超详解(全源码优化)

上节我们学习了二叉树(前中后)序遍历这节将实现二叉树。让我们复习一下二叉树,接着就是二叉树的实现了😊,学习起来吧!满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

2024-03-20 18:23:09 2914 73

原创 【算法与数据结构】堆排序&&TOP-K问题

堆排序即利用堆的思想来进行排序,总共分为两个步骤:代码运行:TOP-K问题是数据挖掘和信息检索中的一个重要问题。TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大。TOP-K问题是数据挖掘和信息检索中的一个重要问题。TOP-K问题的含义是:给定一个集合,找出其中值最大或最小的前K个元素。常见的TOP-K问题有:查找文档集合中与查询条件最相关的前K篇文档。这在搜索引擎中很常见。从用户评分最高的物品中找出前K个最受欢迎的物品。从数据库中找出收入前K高的用户。从候选

2024-03-17 16:55:41 2121 18

原创 【算法与数据结构】深入解析二叉树(二)之堆结构实现

普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等堆的性质:现在我们给出一个数组,逻辑上看做一颗完全二叉树。我们通过从根节点开始的向下调整算法可以把它调整成一个小堆。向下调整算法有

2024-03-16 08:00:00 1981 65

原创 【算法与数据结构】深入解析二叉树(一)

数是一种非线性的数据结构,它是由n(n>=0)个有限节点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。注意:树形结构中,子树之间不能有交集,否则就不是树形结构树的相关概念树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,既然保存值域,也要保存结点和结点之间的关系,实际中树有很多种表示方式如:双亲表示法,孩子表示法、孩子双亲表示法以及孩子兄弟表示法等。我们这里就简单的了解其中最常用的孩子兄弟表示法。Linux文件系统中也广泛使用树状图来表

2024-03-14 23:12:24 1349 58

原创 【算法与数据结构】队列的实现详解

入队(Enqueue):通过尾指针添加元素到队列尾部,即向队列中插入元素。出队(Dequeue):通过头指针删除队列头部元素,即从队列中移除元素。空队列:当头指针和尾指针相同时,表示队列为空。满队列:当尾指针指向队列容量最大位置时,表示队列已满。数组实现队列:使用一维数组存储元素,头指针和尾指针分别指向数组的下标位置。链表实现队列:每个元素使用一个节点存储,头节点和尾节点通过指针链接实现队列。头文件:Queue_order.h🌉初始化front和rear都指向-1,表示队列中没有数据。size为0,

2024-03-13 13:41:27 948 16

原创 【算法与数据结构】复杂度深度解析(超详解)

如何衡量一个算法的好坏如何衡量一个算法的好坏呢?比如对于以下斐波那契数列:斐波那契数列的递归实现方式非常简洁,但简洁一定好吗?那该如何衡量其好与坏呢?算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。**时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。**在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的

2024-02-28 12:15:00 2884 74

原创 【C进阶】顺序表详解

线性表是一种常见的抽象数据类型:线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)。顺序表:逻辑结构是线性的,物理结构是连续的顺序表是在计算机内存中以

2024-02-26 22:34:02 1292 26

原创 【C++】C++对C语言的关系,拓展及命名空间的使用

C++中的命名空间是一种封装标识符(如变量名、函数名、类名等)的方式,用于防止命名冲突。命名空间允许组织代码以避免可能出现的标识符冲突,尤其是在大型项目或者在使用多个库时。它可以被视为一种定义标识符的作用域,这些标识符在该命名空间内是可见的,而在命名空间外则不是。namespace 名称 {// 定义变量、函数、类等 }这里,名称是你给命名空间指定的名字,可以根据需要在里面定义变量、函数、类等。例如,定义一个名为// 函数实现使用命名空间内的成员时,需要使用命名空间的名称和作用域解析运算符。

2024-02-25 22:46:17 1498 48

原创 【C语言】深度探讨文件操作(一)

本小节,我们学习文件操作的知识,为什么使用文件?什么是文件?程序文件和数据文件,文件名的构成,二进制文件和文本文件?文件的打开和关闭,认识 流和标准流,利用 ⽂件的顺序读写,最后进行了简单文件拷贝,干货满满!学习起来吧😃!文件是计算机系统中用来存储和组织数据的基本单位。磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)这次阿森和你一起学习为什么使用文件?什么是文件?程序文件和数据文件,文件名的构成,二进制文件和文本文件?

2024-01-21 17:47:38 2022 103

原创 【C语言】编译和链接深度剖析

本小节,我们学习翻译环境和运行环境,其中我们将学习编译环境的4个阶段:预编译,编译(词法分析,语法分析,语义分析),汇编,链接,文章干货满满!学习起来吧😃!这次阿森和你一起学习了 C语言程序从源代码到可执行文件的整个翻译过程。翻译环境指将源代码翻译成可执行程序的整个过程,运行环境指程序实际执行的环境。预处理(预编译)–>对源代码进行预处理,如宏替换、头文件包含等。编译 -->将预处理后的源代码进行词法、语法和语义分析,生成目标代码。词法分析:识别源代码中的标识符、关键字、运算符等词法单元。

2024-01-20 03:07:46 1497 90

原创 【C语言】动态内存管理之4个内存函数`malloc`,`free`,`calloc`和`realloc`深度了解

本小节,我们学习动态内存管理:为什么要有动态内存分配?mallocfreecalloc和realloc,这些C标准库中的内存管理函数都声明在在stdlib.h头⽂件中。干货满满!学习起来吧😃!这次阿森和你一起学习了声明在stdlib.h头文件中的4个内存管理函数malloc()free()calloc()和realloc()malloc()- 分配内存块 -free()- 释放内存块 -calloc()- 分配并清零初始化内存块 - vrealloc()- 重新分配内存块大小 -

2024-01-03 14:52:39 4796 120

原创 【C语言】一篇文章深入解析联合体和枚举且和结构体的区别

联合体(union)是允许一个变量通过不同的接口访问内存的一种数据类型,表示一个变量可以存储不同类型的值,而枚举是使用enum关键字定义一组相关且互斥的整形常量集合。本章阿森将和你学习联合体类型的声明,特点,有关大小的计算,还有枚举类型的声明,优点和使用。文章干货满满!学习起来吧😃!这次阿森和你一起学习联合体类型的声明,特点,然后进行相同成员的结构体和联合体对⽐,⼤⼩的计算,联合体应用,枚举类型的声明,优点和扫雷改造使⽤方法,阿森将下一节和你一起学习动态内存管理🚀。

2023-12-30 15:01:56 2783 114

原创 【C语言】自定义类型:结构体深入解析(三)结构体实现位段最终篇

本小节,我们将学习结构体最后的知识:结构体实现位段,阿森将会和你一起去学习什么是位段?位段的内存分配,VS怎么开辟位段空间呢?位段跨平台问题,随即位段的应用,最后我们也要了解它的注意事项。文章干货满满,很容易理解,学习起来吧!😊位段是C语言中结构体的一种数据类型。位段允许在结构体中定义具有指定位数的成员,这些成员可以占用结构体变量内部的连续比特位。位段的声明和结构是类似的,有两个不同:位段的成员必须是int或signed int,在C99中位段成员的类型也可以选择其他类型。

2023-12-26 22:28:03 2276 112

原创 【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参

本小节,我们学习结构的内存对齐,理解其对齐规则,内存对齐包含结构体的计算,使用宏offsetof计算偏移量,为什么要存在内存对齐?最后了解结构体的传参文章干货满满!学习起来吧😃!这次阿森和你一起学习结构体的 结构体内存对齐,内存对齐包含结构体的计算,使用宏offsetof计算偏移量,为什么存在内存对⻬?结构体传参的本质,阿森将下一节和你一起学习结构体实现位段。

2023-12-22 15:43:32 7380 127

原创 【C语言】自定义类型:结构体深入解析(一)

本小节,阿森继续和你一起学习什么是结构体?结构体类型的声明和创建,然后就是结构体的初始化,随即学习结构成员的访问操作符来更好的打印结构体的数据,当然还有匿名结构体类型,和结构的自引用。文章干货满满,接下来我们就学习一下结构体吧 😃!结构体是一种用户定义的数据类型,它允许用户根据需要组合不同类型的变量。int age;结构体通过struct关键字来定义,它允许将多个不同类型的数据元素组合在一起,这些数据元素称为结构体的成员。

2023-12-19 12:35:03 2415 105

原创 【C语言】超详解strncpy&&strncat&&strncmp&&strerror&&perror的使⽤和模拟实现

strncpystrcnatstrncmp的使用和两种模拟实现方法,他们和strcpy等函数比较多了一个n,实现方法有很大区别,还有strerror和perror的使用,学习这些库函数,可以更好的方便操作字符和字符串,文章干货满满,接下来我们就学习一下这些函数吧!strcpystrcat这类函数不安全,因为它们在复制字符串时不检查目标缓冲区的大小,可能会导致缓冲区溢出。而strncpystrncatstrncmp这类函数相对来说更安全,因为它们在复制/追加字符串时会限定最大长度参数n。

2023-12-15 01:37:33 1833 125

原创 【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现

记上节,我们学了字符串strlen,strcpy,strcat,strcmp,strstr的使用和他的模拟实现方法,学习这些库函数,可以更好的方便操作字符和字符串,文章干货满满,接下来我们就学习一下这些函数吧!这次阿森和你一起学习4个C语言中常用的基本字符操作函数,当然这只是一部分,还有很多,但阿森会慢慢和你一起学习。

2023-12-10 19:21:25 2373 111

原创 【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现

本小节我们将学习字符分类函数,字符串转换函数,使用库函数实现函数的大小写转换,当然还有字符串转换成整数(isdigit和atoi),使用(snprintf)将整数怎么转换回字符串。最后还有strlen函数的三种模拟实现。文章干货满满,让我们学习起来!通过学习字符分类函数、字符串转换函数和字符串长度计算的原理和用法,我们可以更好地理解字符和字符串的处理方式,并能够灵活运用这些函数进行字符和字符串的处理。这些函数在实际的开发中经常会用到,掌握它们的使用方法对于提高开发效率和代码质量都很重要。

2023-12-07 22:58:26 1657 109

原创 【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)

通过前几节我们学了前面五节指针和学习了sizeof操作符知识,本小节,阿森继续和你一起做一维数组和指针笔试题,🏂当然还有关于指针运算的笔试题,干货满满!让我们开始做题😁!(🌷当然,宝子们,天气变化大,记得多注意保暖🌷)本小节我们学习了sizeof和strlen对一维字符数组,字符串数组和指针变量进行练习,我们应该对指针有了更多的理解,但是他们都离不开我们以下的知识点。sizeof用于计算变量或类型占用的内存空间(字节单位),它是编译期就能确定的常量。strlen用于计算字符串长度,但仅限于以。

2023-12-01 22:35:12 1593 115

原创 【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析&&模拟实现

一、转移表二、回调函数是什么?三、qsort函数细解3.1 类比冒泡排序?3.2 qosrt函数超详解3.2.1qsort函数排序整型数据3.2.2 使⽤qsort排序结构数据四、 qsort函数的模拟实现4.1 模拟qsort整形数据4.2 模拟`qsort`排序结构数据

2023-11-25 22:03:00 1334 100

原创 【C语言】深入解开指针(四)

一、🚣 字符指针变量二、⛵️ 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化三、⛵️⼆维数组传参的本质四、🚤函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使⽤4.3 两段有趣的代码4.3.1 typedef关键字五、🚢函数指针数组

2023-11-23 00:09:08 1028 94

原创 【C语言】深入解开指针(三)

深入学习指针,不一样的指针等你学习、 数组名的理解、 使⽤指针访问数组、⼀维数组传参的本质、⼆级指针、指针数组

2023-11-17 22:11:24 1473 74

【算法与数据结构】深入二叉树实现超详解(全源码优化)

这个资源包含了二叉树数据结构的完整实现源码。 源码实现了二叉树的基本操作,包括节点的创建、插入、删除、遍历等。代码结构清晰,注释详细,实现了标准的二叉树操作接口。 源码通过C语言实现,采用二叉树的数据结构。实现了二叉树的主要操作,如插入、删除、前序、中序、后序遍历等。 每个操作函数都添加了详细的注释,清晰说明了函数的功能和实现原理。同时对二叉树相关概念如节点、左右子树、根节点等进行了定义。 该源码实现了一个完整而高效的二叉树数据结构。它对学习和理解二叉树的原理和实现提供了很好的参考。开发人员可以直接参考和使用这个源码,在项目开发中实现二叉树相关功能。 总之,这个资源通过源码的形式,对二叉树数据结构进行了系统和详尽的实现,对学习和应用二叉树算法十分有帮助。

2024-03-31

猜数字小游戏的一步一步实现

C语言猜谜游戏是初学者熟悉C语法和逻辑思维基础的绝佳方式。通过参与这个游戏,我们希望每个人都能更好地理解和掌握C语言的知识。这个简单又有趣的游戏是初学者在深化对C语言理解的同时获得乐趣的好方法。我们鼓励每个人积极参与这个游戏,以获取更多关于C语言的知识,并加强对编程语言的掌握。C语言猜谜游戏是初学者熟悉C语法和逻辑思维基础的绝佳方式。通过参与这个游戏,我们希望每个人都能更好地理解和掌握C语言的知识。这个简单又有趣的游戏是初学者在深化对C语言理解的同时获得乐趣的好方法。我们鼓励每个人积极参与这个游戏,以获取更多关于C语言的知识,并加强对编程语言的掌握。

2023-11-09

C语言扫雷游戏一步一步的实现

作为C语言的初学者,通过逐步实现扫雷游戏,可以更好地理解和掌握C语言的基本语法和编程逻辑。这对于想要系统学习C语言的人来说非常有帮助。 如果你刚开始学习C语言,那么逐步实现扫雷游戏将会非常有益处。通过这样做,你将更深入地了解C语言的基本语法和编程逻辑。这对于那些想要系统学习C语言的人来说尤其有用,因为它为他们打下了坚实的基础,使他们能够更好地掌握知识和技能。不仅如此,你还可以亲身体验语言的使用,并看到它在实践中的应用。因此,如果你想真正掌握C语言,不妨尝试挑战自己,亲手构建自己的扫雷游戏——这可能是成为一名优秀的C语言程序员的关键!

2023-11-09

空空如也

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

TA关注的人

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