- 博客(48)
- 收藏
- 关注
原创 C进阶—文件操作
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件,是将信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上文件。,每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,一般通过一个FILE的指针来维护这个FILE结构的变量。每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等),这些信息是保存在一个。
2024-07-26 17:02:20
965
原创 C进阶—动态内存管理
realloc函数就可以做到对动态开辟内存大小的调整,size的大小是总的大小,比如已经用malloc开辟了40个字节的空间,size=60,就是开辟40+20个字节的空间。当是情况2 的时候,原有空间之后没有足够多的空间时,扩展的方法是:在堆空间上另找一个合适大小的连续空间来使用。当是情况1 的时候,要扩展内存就直接原有内存之后直接追加空间,原来空间的数据不发生变化。2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。该函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。
2024-07-24 13:31:44
822
原创 C进阶—自定义类型
int x;float y;}p1;//声明结构体的同时定义变量int x;float y;//声明结构体的同时定义变量并初始化int data;
2024-07-21 22:00:45
662
原创 C初阶-结构体
函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。p1和p2是使用struct Peo结构体类型创建的2个变量。通过点(.)和箭头(->)访问。而数组是同一种元素的集合。
2024-07-04 16:22:28
182
原创 C语言-初探指针
/使用&操作符,取出a的第一个内存单元地址,存放在指针变量pa中,pa的类型是int*0减C,向高位借1,因为是16进制,所以就是16+0=16,16-12©=0x04,就是10进制的4。如果是int*的指针,解引用访问4个字节,如果是char*的指针,解引用访问1个字节。概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)对ppa解引用*ppa得到的是pa的值,再解引用**ppa得到的是a的值。2.&数组名,取出的是数组的地址,&数组名,数组名表示整个数组。
2024-07-04 10:30:27
805
原创 C语言-操作符
解析:从左向右计算,a++这个表达式是先使用后++,所以是0与上后面的,0与上任何数都是0,所以后面的不会执行,因此a的值是1,b和c的值不变,如果令a=1,则打印的结果是2, 3, 4,1。解析:从左向右计算,a++这个表达式是先使用后++,所以是1或上后面的,1或上任何数都是1,所以后面的不会执行,因此a的值是2,b和c的值不变,如果令a=0,则打印的结果是1, 3, 3,1。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度。逗号表达式,从左向右依次执行。
2024-07-02 08:52:22
1062
1
原创 STM32F103C8T6—烧录程序
64位的操作系统选择dpinst_amd64.exe,32位的操作系统选择dpinst_x86.exe。将下载好的压缩包en.stsw-link009.zip解压,根据自己的操作系统选择响应的安装包,将usb转ttl的GND和3.3V分别连接到stm32f103c8t6的GND和3.3V,然后接收许可协议,如果有账号登录即可,没有账号可以填写资料发送到邮箱下载。将usb转ttl插入电脑,可以看到下图内容,说明安装成功。注意:要将开发板上的BOOT0的跳线帽连接低电平。设备管理器,找到通用串行总线设备。
2023-12-17 16:23:57
6528
原创 机器学习笔记(11)— 简化逻辑回归代价函数、梯度下降实现、过拟合、正则化、线性和逻辑回归正则方法
对逻辑回归的损失函数进行了简化,由两个式子合并成一个式子,对逻辑回归实现了梯度下降,对过拟合和欠拟合进行了解释,有3种方法解决了过拟合问题,正则化是最常用的,对线性回归和逻辑回归使用了正则化方法。
2022-11-24 22:10:35
1135
原创 机器学习笔记(10)- 逻辑回归中的代价函数
证明了用线性回归的代价函数去描述逻辑回归是不合适的,因为会出现非凸函数,会有多个局部最小值。通过逻辑回归的输出值,定义了一个损失函数,当标签值y=1时,只有预测出的值趋近于1,损失函数才会趋近于0,否则趋近于无穷大,标签值y=0时同理。
2022-11-22 22:39:18
691
原创 机器学习笔记(9)— 决策边界
机器学习中的决策边界就是使z=0的点,即向量w乘向量x+b=0的点,这条边界可能是条直线,可能由于w的高阶多项式的原因,形状不规则
2022-11-22 08:38:35
1026
原创 Opencv入门教程(1)—图像基本操作(imread,imshow,waitKey,imwrite,cv2.cvtColor)
对图像基本操作(读取图像cv2.cvimread,显示图像cv2.imshow,waitKey,保存图像cv2.imwrite,色彩转换cv2.cvtColor)
2022-10-24 22:51:57
1771
原创 STM32是什么?
STM32,是一款单片机,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示 32 位,合起来就是 ST 公司开发的 32 位微控制器。
2022-09-13 21:01:41
3999
原创 STM32F103串口(ISP)下载
ISP (Iin-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用SP方式擦除或再编程。ISP是一种通用的程序下载方式,AVR单片机一都有ISP下载接口。串口下载方式即ISP方式。STM32出厂时内部固化了通过串口1下载程序的代码,在PC端可以通过专用软件,比如STM32 Flash loader demonstrator、FlyMCU、MCUISP等,通过串口将hex文件下载到芯片中。
2022-09-08 22:27:17
5503
原创 C语言进阶—数据的存储
基本类型整型在内存中的存储整型在内存中以补码的形式进行存储大端存储模式:数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中小端存储模式:数据的低位保存在内存的低地址中,数据的高位保存在内存的高地址中在vs2019中采用的是小端存储模式,而keil c51则为大端存储模式#include <stdio.h>int main()//判读程序的大小端{ int i = 1; char* p = (char*)&i; if (*p == 1) {
2022-07-23 20:24:44
414
原创 C语言——文件操作
文件文件磁盘上的文件是文件,文件一般分为两种:程序文件、数据文件程序文件包括源程序文件(后缀.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)数据文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件或者输出文件的内容一个文件有一个唯一的文件标识,文件名包含3个部分:文件路径+文件名主干+文件后缀,例如:c:\program\text.txt文件的打开和关闭文件指针每个被使用的文件都在内存中开辟了一个相应的文
2022-07-18 23:27:43
473
原创 C语言——strlen、strcpy、strcat、strcmp、strstr、memcpy、memmove函数的使用和模拟以及字符分类函数
strlen首先我们先看c语言库函数实现strlen求字符串长度:从以上图片中我们可以看出strlen是求字符串的长度,求的长度是\0之前的字符串,返回值的类型是无符号整型#include <stdio.h>#include <string.h>int main(){ char arr[] = "abcdef"; int len = strlen(arr); printf("%d\n", len);//6 return 0;}现在我们模拟实现这个代码#i
2022-07-13 21:31:22
552
原创 C语言--三子棋
主函数#include "game.h"void menu(){ printf("*************************\n"); printf("*****1.play 0.Exit*****\n"); printf("*************************\n");}void game(){ char ret = 0; char board[ROW][COL] = { 0 }; Initboard(board, ROW, COL); Displa
2022-05-01 14:52:44
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人