自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++学习笔记 new/delete相关知识点|与malloc/free的区别

此代码中,创建对象时调用构造函数,delete obj释放对象时调用析构函数。对于用new[]分配的数组,需用delete[]释放,以保证数组中每个元素的析构函数(对自定义类型)都能被调用。在 C++ 面试中,newdelete。

2025-04-04 00:58:35 158

原创 C++学习笔记 | malloc calloc realloc的作用以及区别

初始化malloc分配的内存不会被初始化,其内容是未定义的;而calloc会把分配的内存初始化为 0。参数malloc只需要一个参数,即要分配的内存字节数;calloc需要两个参数,分别是元素个数和每个元素的大小;realloc需要两个参数,分别是指向已分配内存的指针和调整后内存的新大小。用途malloc适用于需要分配内存但不需要初始化的场景;calloc适用于需要分配内存并初始化为 0 的场景;realloc适用于需要调整已分配内存大小的场景。

2025-04-03 20:59:36 322

原创 C++学习笔记之内存管理

仅用于记录学习理解。

2025-04-03 14:26:11 132

原创 C++入门练习之 给出年分m和一年中的第n天,算出第n天是几月几号

闰年:是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。地球绕太阳公转一周的实际时间约为 365.2422 天 ,而平年按 365 天计算,每年会少约 0.2422 天,日积月累差距会增大,所以每四年增加一天,这一年就是闰年,让历法时间更接近天文时间。平年:指阳历没有闰日或者农历没有闰月的年份,是历法中的常规年份,用于标记时间流逝。

2025-04-03 14:00:54 97

原创 C++学习笔记之实现求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句

【代码】C++学习笔记之实现求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句。

2025-04-03 01:31:58 35

原创 C++学习笔记之 类和对象| static成员

突破类域就可以访问静态成员,可以通过类名::静态成员 或者 对象.静态成员 来访问静态成员变量。静态成员也是类的成员,受public、protected、private 访问限定符的限制。静态成员变量为所有类对象所共享,不属于某个具体的对象,不存在对象中,存放在静态区。静态成员函数中可以访问其他的静态成员,但是不能访问⾮静态的,因为没有this指针。⽤static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指针。⾮静态的成员函数,可以访问任意的静态成员变量和静态成员函数。

2025-04-03 01:23:09 447

原创 C++学习笔记之《类和对象》之 静态成员变量的特性

声明:告知编译器某个变量或函数的存在,以及它的类型和名称,但不分配内存空间。定义:不仅声明了变量或函数,还为其分配了内存空间。由于涉及到了static。

2025-04-02 13:28:48 261

原创 Python入门知识点复习

【代码】Python入门知识点复习。

2025-03-28 00:36:31 84

原创 python入门代码练习之人生模拟器|break continue|for range

break:彻底终止循环,不再执行后续的循环迭代。continue:仅跳过当前循环的剩余部分,接着进行下一次循环迭代。

2025-03-26 12:43:18 265

原创 OpenCV 颜色空间:原理与操作指南

OpenCV 的颜色空间转换功能为计算机视觉应用提供了强大的支持。通过理解不同颜色空间的原理,我们可以根据具体需求选择合适的颜色空间进行图像处理。无论是图像分割、目标检测还是图像增强,颜色空间转换都是不可或缺的工具。希望本文能帮助读者更好地掌握 OpenCV 中颜色空间的操作,在计算机视觉领域取得更多成果。

2025-03-06 16:05:43 475

原创 物联网通信应用案例之《智慧农业》

在智慧农业方面,一般的应用场景为可以自动检测温度湿度等一系列环境情况并且可以自动做出相应的处理措施如简单的浇水和温度控制等,且数据情况可远程查看,以及用户可以实现远程控制。

2025-02-26 10:54:00 1009 2

原创 C++入门《类和对象》之《运算符重载》详解|成员函数重载/非成员函数重载

C++ 中,运算符重载是一种特殊的函数,它允许程序员为自定义的数据类型(如类和结构体)重新定义运算符的行为,使得这些运算符能够像处理内置数据类型一样处理自定义类型的数据。下面将从多个方面详细讲解 C++ 里的运算符重载。

2025-02-18 21:35:18 909

原创 C++入门《类和对象》之《拷贝构造函数》详解

自定义类型传值传参和传值返回会调用拷贝构造。return p;这里函数返回Person对象p时,会调用Person的拷贝构造函数创建返回值副本。

2025-02-15 23:37:15 613

原创 C++入门之《类和对象中》的构造函数和析构函数

构造函数是一种特殊的成员函数,它在创建对象时自动调用,主要用于对象的初始化操作,比如为对象的数据成员赋初值等。析构函数也是一种特殊的成员函数,它在对象的生命周期结束时自动调用,主要用于释放对象所占用的资源,比如动态分配的内存、打开的文件等。

2025-02-15 11:36:41 612

原创 C++入门之this指针

指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象,借助。指针,成员函数能够知晓是哪个对象在调用它,从而可以访问该对象的成员变量和成员函数。,也就是返回调用该函数的对象的引用。这在实现链式调用时特别有用。当成员函数的参数名与成员变量名相同时,就可以使用。指针来明确访问的是成员变量。就能清晰地表明操作的是成员变量。类的构造函数里,参数。与成员变量同名,借助。

2025-02-10 12:50:25 184

原创 C++入门 之 类和对象详细讲解|类域|构造函数|访问控制

类是一种用户自定义的数据类型,它将数据(成员变量)和操作这些数据的函数(成员函数)封装在一起。类的定义通常使用class// 类的成员// 可以是成员变量、成员函数例如,定义一个表示矩形的类public:// 成员变量// 成员函数在这个例子中,Rectangle是类名,length和width是成员变量,area()是成员函数。public是访问控制修饰符,表示这些成员可以被类外部的代码访问。

2025-02-10 12:18:54 1041

原创 C++入门之内联函数以及在VS中的设置

C 和 C++ 等编程语言中,inline是一个用于声明内联函数的关键字。

2025-02-10 11:32:28 387

原创 C++入门之引用的概念和定义

C++ 中,引用(Reference)是一个重要的概念,它为对象提供了一个别名,而非对象本身。下面从引用的。

2025-02-09 18:04:24 391

原创 C++入门基础之命名空间|using声明|缺省参数

命名空间是C++中的一种机制,用于将相关的标识符(包括函数、类、变量、对象、结构体、枚举等)分组在一起,以避免命名冲突。它可以看作是一个逻辑容器,将具有相似功能或来自同一模块的元素组织在一个单独的区域内。在不同的命名空间中可以使用相同的标识符而不会产生混淆。

2025-01-18 23:57:40 907

原创 opencv训练模型时用描述文件创建样本为0,创建失败报错pos\pos.txt(1) : parse error

查了很多别的博主的资料试了很多方法没成功, 别的方法懒得写了(确保路径没问题,描述文件内的描述格式正确。),只记录一下我成功了的方法,打开样本的描述文件另存为将编码格式改为UTF-8就成功了。

2025-01-06 14:55:33 114

原创 【FreeRTOS】基础实验代码整理|CubeMX-Keil5|动态静态创建任务|二值信号量|队列|内存管理

先更新前七个,对照这个表按顺序都在云盘压缩包里,关键代码都有注释笔记。有需要可以看看,和我板子一样的可以直接下载使用。最近在复习学过的FreeRTOS里的一些基础实验,在这整理记录一下。

2024-11-30 00:20:01 226

原创 数据结构每日一题|判断链表环形结构并返回环的起始节点

我们假设快慢指针相遇后,慢指针此时从相遇点开始新的旅程,同时一个新的和他速度一样的每次走一个节点的指针从起始位置出发,当慢指针走完n圈再减去b就回到了环的起始节点,因为速度一样,所以等于 新的指针走过来的a。如果能求出a,就相当于求得了环的起始节点(用一个新的指针从起始头节点遍历a个距离的节点)初始的假设条件:快指针的移动速度为每次2节点,慢指针为1节点。快指针走了 n圈+b = n(b+c)+b 与慢指针相遇。可得关系式 a+(b+c)× n+b = 2×(a+b)进入节点前的路程为a。

2024-11-25 01:46:39 387

原创 数据结构每日一题|判断链表是否有环型结构

我们可以设快指针的移动速度是B的两倍,在循环里,他们终究会在某一个节点相遇的。这个时候比较他们即可,可是比较什么呢,最开始我想到的是比较节点的值的大小,判断相等后再比较下一个节点,可是这就有一个问题,就算这真的是个圆环结构,那么比较到什么时候是个头呢,最后才想到直接比较两个指针,在第一次相遇的时候,快指针肯定是在前面的某个节点进入了环形结构重新返回了回来和慢指针相遇,即指向同一个地方,所以,如果直接比较二者是否相等即可判断。思路:如果链表里面存在环形结构的话,则遍历链表是不会有头的,会一直循环下去。

2024-11-24 17:51:35 272

原创 链表每日一题|返回倒数第k个节点的值

思路:要返回倒数第k个节点的值的话,最基本得知道这个节点是在哪个位置,是第几个节点。所以得定义一个指针去遍历链表计算出链表的节点个数,当知道链表的节点个数后,用节点个数减去题目所给的k值再加个1,就能得到所求值是第几个节点的值了。由于链表的单向的特性,我们的第一个指针已经拿去遍历求链表的节点个数了,他已经走到头了,没法再返程了哈哈,所以这个时候就要定义使用第二个指针了。第二个指针用于去找要求的倒数第k个的节点。仅记录自己的做题思路。

2024-11-24 14:46:10 136

原创 nRF24L01无线通讯模块一直发送失败的解决办法

最开始第一次使用nRF24L01发送数据的时候我记得只有我一个发送设备,没有接收设备,串口也能打印显示发送成功,后面将程序移植到c8t6最小系统板后测试也一切正常,就在最近拿出来继续升级测试的时候发现,发送不了数据了,一直显示失败,更换了板子,线,nRF24L01模块等所有硬件,排除了硬件原因。可是我上一次是测试成功确认没问题了才把设备收起来的,程序压根没动过,这就给我整懵b了,真的给我这个菜鸟搞破防了,代码从头到位,眼睛都看花了,测了一天就是解决不了。转折来了 ,我的好哥们 @羔杨675 (接收方)在仔细

2024-11-23 01:40:49 1473

原创 链表刷题|找链表的中间结点|快慢指针

即定义两个指针,都从头节点向链表尾部移动,有区别的是一个一次移动一个节点,另一个移动两个,即二倍的速度移动。值得注意的小细节是循环的判断条件,最开始只想到了简单的快指针的下一个节点不超过范围即可,写的while(fast->next),但会有只有一个节点这种情况。//在第一次进入循环判断条件时,如果直接写 fast->next,就会尝试访问不存在的下一个节点(因为只有一个节点),从而引发错误。//就会导致空指针访问异常,程序会崩溃。例如,当链表只有一个节点时,fast 初始化为指向这个唯一的节点,

2024-11-22 12:59:30 167

原创 链表刷题|判断回文结构

要判断是否为回文结构则要对比链表左半部分和右半部分是否相等,由于链表的单向移动的特性,显然不太好操作,第一时间想到的是将其先遍历存入到数组当中,存入到数组后就可以很方便的操作了,大家都学过的从数组的首末两端分别往中间边移动边比较即可,期间有一次数据比对不一致都可以直接return返回false了,反之如果移动比对到了中间就说明是回文结构。我做题喜欢先把时间复杂度和空间复杂度放一边,先得有大概的解决方案,最后如果时间或者空间超了再去优化即可。

2024-11-21 19:05:13 214

原创 数据结构-链表的基础操作以及理解

NULLNULL目前仅讨论以上内容可以由下图来理解,每个存储了数据的大方框(节点)分为两部分,一部分为结构体的val,即储存数值,另一部分则储存了并且只存储了通往下一个大方框(节点的指针地址)我们可以设想出一条单向的链接连接到下一个节点,无所谓你如何理解,总之就是从1可以找到2,从2可以找到3,但不能反着来,可理解为每个车站都只卖通往下一站的票。

2024-11-20 00:44:44 425

原创 C语言结构体|结构体内存对齐|结构体传参|结构体实现位断

以上就是创建了两个 Node类型的结构体变量 a和b(可以类比理解int a ,int是类型,a是变量名),这个Node结构体里面目前包含两个成员int类型的data和char类型的memory 、

2024-11-11 00:25:33 918

原创 CubeMX stm32编程实现遥控小车|舵机控制|电机控制|无线传输|摇杆控制|嵌入式必做入门级项目

一,小车部分小车部分分为舵机控制和电机控制,以及无线模块1,无线模块接收来自遥控器的X和Y轴数据2,舵机:连接至板子,使用cubemx配置pwm,使用无线模块接收到的X轴数据通过pwm控制转向3,电机:连接至NFR24L01电机控制模块,使用无线模块接收到的Y轴数据通过电机模块输出pwm波控制电机转速

2024-11-09 19:03:54 1531

原创 整数和浮点数在内存中的存储

例:0.5 的⼆进制形式为0.1,由于规定正数部分必须为1,即将⼩数点右移1位,则为1.0*2^(-1),其 阶码为-1+127(中间值)=126,表⽰为01111110,⽽尾数1.0去掉整数部分为0,补⻬0到23位00000000000000000000000,则其⼆进制表⽰形式为。M= 1.0 --------------------> 因为默认M第一位是1(1

2024-11-08 12:36:41 578

原创 数据在内存中的存储|大小端|整数,浮点数在内存中的存储

整数的二进制表示方法有三种,即 原码 反码 补码正整数的原、反、补码都相同。负整数的三种表⽰⽅法各不相同。:将数值按照正负数的形式转换成⼆进制即是原码。:将原码的符号位不变,其他位依次按位取反(0变成1,1变成0)就可以得到反码。:反码+1就得到补码。。这里不细讲。

2024-11-03 19:38:51 422

原创 数据结构~时间复杂度and空间复杂度知识点总结

时间复杂度是衡量一个算法运行时间随输入规模增长的速度的指标.nN不断变⼤时,低阶项对结果影响越来越⼩,当N⽆穷⼤时,就可以忽略不计了n如果最⾼阶项存在且不是1,则去除这个项⽬的常数系数,因为当N不断变⼤,这个系数对结果影响越来越⼩,当N⽆穷⼤时,就可以忽略不计了。如果只有常数项,⽤常数1取代所有加法常数。以下是常见的冒泡排序,外层循环执行n - 1次,内层循环在每次外层循环时执行的次数逐渐减少。总的比较和交换操作的次数大约为n^2次,所以时间复杂度为O(n^2)。

2024-11-02 12:59:26 682

原创 指针*解引用操作深入理解|二次解引用,三次解引用|指针数组

*++pc的意思就是先将pc加1然后再连续解引用共两次,pc的首元素的地址也就是pb的地址,(粉色线指向的位置)加1后指向pa+2头上(红色线),第一次解引用也就是使用pa+2,而pa+2(pa的首元素的地址+2)指向de的头上,第二次解引用也就是里面存的值de了,所以打印出来是de。pc[-1][-1]+1 根据上文所说[]可以看成一次解引用 所以pc[-1][-1]+1等于*(*(pc-1)-1)+1。2. *++pc: 对++pc后的pc进行解引用,得到它所指向的内容,即pa + 1。

2024-10-24 15:24:58 493

原创 FreeRTOS 信号量实验|二值信号量的创建与释放

通过对这些代码片段的分析,可以更好地理解信号量的创建、使用以及不同数据类型在特定编程环境中的作用和考虑因素。

2024-10-19 11:42:32 308

原创 FreeRTOS创建以及删除任务

删除任务:要不就自杀,要不就杀别的任务,但是杀别的任务的话要注意尽量避免被杀任务优先级高于自己以及正在运行。总结一下自己在创建任务以及删除任务时所遇到的问题。要使用钩子函数记得开启对应的宏。

2024-10-19 10:37:32 199

原创 指针的更多细节|数组名的理解|数组传参|arr与&arr与*arr。。。

这个时候则会想到我们经常用的sizeof(arr)了,既然arr是数组首元素的地址,那么sizeof(arr[0])/sizeof(arr)计算出来的值不就不是我们之前所理解的一个元素的大小了吗,其实分为以下两种情况。*(arr+2)表示arr地址即首元素的地址加2后即为第三个元素的地址然后再解引用操作即指向了我们刚通过scanf存入数组的位于第三个元素位置的66.,这⾥的数组名表⽰整个数组,取出的是整个数组的地址(整个数组的地址和数组⾸元素。代表的是一个地址(指向数组首元素的指针),而。

2024-10-12 01:25:20 1221

原创 指针的运算以及注意事项

如果使用解引用操作符 “*”,那么它的含义就变成了访问指针所指向的内容。例如,如果有 “char ch = *s;这个指针指向相同的内存地址,而不是对地址中的内容进行赋值等操作。而在 “char *p = s;” 中,是对指针本身进行操作,让。仅记录在学习指针的过程中所产生的疑惑以及解决的过程以及结果。” 这句代码中s前面不使用解引用操作符 “” 是因为这里是在进行指针变量的赋值操作,目的是让指针。相同的地址,而不是对指针所指向的内容进行操作。所指向的地址中的字符值赋给变量。

2024-10-10 00:00:26 515

原创 C语言关于strlen和sizeof的区别以及使用注意事项

的字节(这可能是在你的程序的其他部分的内存中),在此过程中它可能会遍历很多内存位置,导致输出一个不确定的值。我们可以发现a11的值也就是arr1数组用strlen计算出的值与我们其他计算的值有很大的差异。函数在计算字符串长度时,是从给定的地址开始一直向后计数,直到遇到第一个。函数会继续向后查找空字符,直到它在内存中的某个位置遇到了一个值为。,但是这个数组并不是以空字符结尾的字符串,所以。,应该确保数组以空字符结尾,例如。在代码中,虽然初始化了。就会正确地输出 3。

2024-10-02 23:01:47 583

原创 关于【一维数组】输入10个整数,求平均值中的知识点|数组|float double浮点数|

主要功能是接收用户输入的十个数字,计算这些数字的总和,并求出平均值,最后将平均值保留一位小数输出。

2024-08-30 17:45:22 827

FreeRTOS动态静态创建任务-二值信号量-队列-内存管理

FreeRTOS动态静态创建任务-二值信号量-队列-内存管理

2024-11-30

空空如也

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

TA关注的人

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