- 博客(31)
- 收藏
- 关注
原创 数据结构与算法学习(0)-常见数据结构和算法
数据结构研究的内容:就是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器里。数据的运算是定义在数据的逻辑结构上,但运算的具体实现要在存储结构上进行。随着应用程序变得越来越复杂和数据越来越丰富,几百万、几十亿甚至几百亿的数据就会出现,对这么大对数据进行搜索、插入或者排序等的操作就越来越慢,数据结构就是用来解决这些问题的。数据结构反映数据的内部构成,即数据由那部分构成,以什么方式构成,以及数据元素之间呈现的结构。
2025-11-19 16:26:58
440
原创 C语言学习(17)-预处理详解
define 叫做宏定义命令,它是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。程序中反复使用的表达式一般可以定义成宏(Macro)。#define 宏名 字符串# 表示这是一条预处理命令,所有的预处理命令都以 # 开头。宏名是标识符的一种,命名规则和变量相同。字符串可以是数字、表达式、if-else 语句、函数、代码片段等。
2025-11-17 11:14:01
924
原创 C语言学习(16)-编译与链接
所以当我们无法知道宏定义或者头文件是否包含正确的时候,可以查看预处理后的 .i 文件来确认。就是根据汇编指令和机器指令的对照表一一的进行翻译,也不做指令优化。将源代码程序被输入搜苗期,扫描器的任务就是简单的进行词法分析,把代码中的字符分割成一系列的记号(关键字、标识符、字面量、特殊字符等)。其实翻译环境是由编译和链接两个大的过程组成的,而编译又可以分解成:预处理(有些书也叫预编译)、编译、汇编三个过程。编译过程就是将预处理后的文件进行一系列的:词法分析、语法分析、语义分析及优化,生成相应的汇编代码文件。
2025-11-12 09:04:19
810
原创 C语言学习(15)-动态内存管理
它接受两个参数,即一个先前分配的指针和一个新的内存大小,然后尝试重新调整先前分配的内存块的大小。它接受三个参数,即目标内存区域的指针、源内存区域的指针和要复制的数据大小(以字节为单位)。它接受两个参数,即需要分配的内存块数和每个内存块的大小(以字节为单位),并返回一个指向分配内存的指针。它接受三个参数,即目标内存区域的指针、源内存区域的指针和要复制的数据大小(以字节为单位)。它接受一个参数,即需要分配的内存大小(以字节为单位),并返回一个指向分配内存的指针。最后 ptr = NULL;
2025-11-07 10:07:40
598
原创 C语言学习(14)-联合体和枚举
为了定义联合体,需要使用union语句,方式与定义结构体类似。union 语句定义了一个新的数据类型,带有多个成员。...union tag是可选的,每个是标准的变量定义,比如int i;或者float f;或者其他有效的变量定义。在共用体定义的末尾,最后一个分号之前,您可以指定一个或多个共用体变量,这是可选的。float f;} data;
2025-11-05 10:02:26
404
原创 C语言学习(13)-结构体
结构体定义由关键字 struct 和结构体名组成,结构体名可以根据需要自行定义。...tag是结构体标签。是标准的变量定义,比如 int i;或者 float f;,或者其他有效的变量定义。结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。//名字int age;//年龄//性别//学号}Stu;//分号不能丢在一般情况下,这 3 部分至少要出现 2 个。//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c//同时又声明了结构体变量s1。
2025-10-28 14:42:33
657
原创 C语言学习(11)-指针pt.1
指针即指针变量用于存放其他数据单元(变量/数组/结构体/函数等)的首地址。若指针存放了某个数据单元的首地址,则这个指针指向了这个数据单元;若指针存放的值是0,则这个指针为空指针定义一个指针变量:指针定义的是指向的数据类型,指针本身没有类型指针的长度必须足够存储地址总线能够表示的所有地址,16位系统:x=2,32位系统:x=4,64位系统:x=8。
2025-10-23 17:12:16
260
原创 C语言练习-函数
题目名称:二分查找-函数实现题目内容:写一个二分查找函数功能:在一个升序数组中查找指定的数值,找到了就返回下标,找不到就返回-1.:二分查找要求数组是升序排列的,否则无法正确工作。:确保left和right的初始值正确,避免数组越界。
2025-01-15 16:03:42
446
原创 C语言练习-if语句
KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。
2024-12-26 20:43:53
548
原创 智能控制理论与应用(第四版)-第三章思考题与习题
所以“不老也不年轻V”模糊集的隶属函数为。如有错误,请各位在评论区批评指正!所以“很年轻W”模糊集的隶属函数为。解:由题意得,语气算子“很”V为“不老也不年轻”,则。
2024-04-09 18:52:15
876
原创 C语言学习(9)-局部变量与全局变量
该变量在全局数据区分配内存;静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为 0;它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。局部变量与静态局部变量的区别:静态局部变量只有在第一次函数被调用时创造并初始化,不需要在每次它进入和离开作用域时进行创建和销毁,因此,
2024-03-18 23:08:51
2175
1
原创 C语言学习(8)-函数
了解了库函数,我们的学习应该更关注自定义函数,自定义库函数也能给程序员写代码提供很多便利。一般我们在使用函数的时候,直接将函数写出来就使用了,比如上面那段代码,第3~8行是 Add 函数的定义,有了函数后,在第20行调用 Add 函数的。int b = 0;//输⼊//调⽤加法函数,完成a和b的相加//求和的结果放在r中//输出return 0;int z = 0;z = x + y;return z;这个代码在VS上编译,就会出现警告。
2024-03-18 21:07:46
772
1
原创 PID是什么?
我喜欢这样理解pid: p是控制现在,i是纠正曾经,d是管控未来!只有不忘过往,把握当前,规划未来才能让人生的轨迹按照既定的目标前进。
2024-03-16 19:11:45
3428
1
原创 数字示波器-原理图与PCB设计
本系列文章旨在记录参加立创开源硬件平台的简易数字示波器训练营的学习过程,请关注立创开源硬件平台。感谢嘉立创训练营!
2024-03-10 14:55:39
2302
1
原创 C语言练习-数组1
在一个升序的数组中查找指定的数字n,很容易想到的方法就是遍历数组,但是这种方法效率比较低。二分查找针对的是一个有序的数据集合,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。
2024-03-06 21:12:15
248
原创 C语言学习(7)-数组
数组是一组相同类型元素的集合;数组中存放的是1个或者多个数据,但数组元素个数不能为0。数组中存放的数据,类型是相同的。数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组。
2024-03-06 19:57:29
1140
原创 C语言练习-猜数字游戏
程序中在调用 rand 函数之前先调用 srand 函数,通过 srand 函数的参数 seed 来设置 rand 函数生成随机数的时候的种子,只要种子在变化,每次生成的随机数也就变化起来了。rand 函数会返回一个伪随机数,这个随机数的范围是在 0 ~ RAND_MAX 之间,RAND_MAX 的大小依赖编译器实现,大部分编译器上是32767。其实,rand 函数生成的随机数是伪随机的,是通过某种算法生成的随机数,并不是真正的随机数。在程序中我们一般使用程序的运行时间作为种子,因为时间是时刻在变化的。
2024-03-05 21:45:29
1004
原创 C语言学习(6)-循环
有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,以此类推。
2024-03-05 17:24:56
873
原创 C语言学习(3)-scanf和printf介绍
d 就是一个占位符,% 是占位符的标志,d表示整数。上面的示例中,name 是一个长度为11的字符数组,scanf() 的占位符 %10s 表示最多读取用户输入的十个字符,后面的字符将被丢弃,这样就不会有数组溢出的风险了。上面示例中,格式字符串 %d%d%f%f ,表示用户输入的前两个是整数,后两个是浮点数,比如1 -20 3.4 -4.0e3。所以,用户输入的数据之间,有一个或多个空格不影响 scanf() 解读数据,用回车将输入分成几行,也不影响解读,得到的结果与在一行输入是完全一样的。
2024-03-02 18:57:03
1260
原创 C语言学习(5)-判断
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需)和条件为假时要执行的语句(可选的)。C语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
2024-03-01 17:48:16
1307
1
原创 C语言学习(4)-C语言运算符
C语言中为了方便运算,提供了一系列运算符,其中+、-、*、/、%都是双目运算符,单目运算符有++、--、+(正号)、-(负号)对两个操作数的每一位执行逻辑与操作,如果两个相应的位都为 1,则结果为 1,否则为 0。对两个操作数的每一位执行逻辑或操作,如果两个相应的位都为 0,则结果为 0,否则为 1。对两个操作数的每一位执行逻辑异或操作,如果两个相应的位值相同,则结果为 0,否则为 1。C语言支持的算术运算符,如下表。对操作数的每一位执行逻辑取反操作,即将每一位的 0 变为 1,1 变为 0。
2024-02-28 21:54:06
1042
原创 C语言学习(2)-数据类型和变量
在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
2024-02-27 22:56:09
886
原创 C语言学习(1)-C语言常见概念
C语⾔中有⼀批保留的名字的符号,⽐如: int 、 if 、 return ,这些符号被称为保留字或者关键 字。关键字都有特殊的意义,是保留给C语⾔使⽤的⾃⼰在创建标识符的时候是不能和关键字重复的关键字也是不能⾃⼰创建的。//在C99标准中加入了 inline 、 restrict 、 _Bool 、 _Complex 、 _Imaginary 等关键字。
2024-02-27 18:41:48
972
原创 STM32学习-I2C通信
I2C总线(Inter IC BUS),由Philips公司开发的通用数据总线。同步,半双工带数据应答支持总线挂载多设备(一主多从、多主多从)以上就是学习的关于I2C通信协议的相关内容,本文简单介绍了I2C的一些常用知识,构成此通信协议最基本的时序单元等。
2023-11-12 00:00:47
669
1
原创 STM32学习-MPU6050
本文记录学习I2C通信协议的相关笔记。(参考b站江协科技STM32教程)MPU6050是一个6轴姿态传感器,可以测量芯片自身XYZ轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角,常应用于平衡车、飞行器等需要检测自身姿态的场景3轴加速度计():测量XYZ轴的加速度3轴陀螺仪传感器(Gyroscope):测量XYZ轴的角速度以上就是关于MPU6050的相关知识及一些个人认为的重点。并且在最后给出如何使用软件模拟I2C通信来读取MPU6050数据的详细代码。
2023-11-11 23:51:17
7306
3
原创 选择结构程序练习题
A. 实验3-9 三天打鱼两天晒网题目描述中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入输入在一行中给出一个不超过1000的正整数N。输出在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。输入样例:输出样例:...
2022-04-08 19:39:49
508
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅