自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chfens的博客

欢迎浏览!

  • 博客(39)
  • 收藏
  • 关注

原创 数据结构——C++实现二叉搜索树,前中后序、层序迭代遍历配合仿函数

实现二叉搜索树模板类、增删查改和四种迭代遍历

2023-09-13 13:33:51 404 1

原创 C/C++内存布局——代码区、常量区、静态区(BSS段、Data段)

介绍C/C++程序的内存布局,以及提出:定义一堆字符串常量指针会不会占用程序的大小?

2023-09-06 17:20:25 998

原创 设计模式——C++11实现单例模式(饿汉模式、懒汉模式),与单例的进程

C++11:线程不安全、多次加锁、单次加锁、不加锁实现单例模式。介绍饿汉模式和懒汉模式。最后实现一个单例的进程

2023-09-06 11:18:08 1033

原创 C++——shared_ptr:make_shared的用处,与shared_ptr直接构造的区别

介绍了智能指针底层原理:资源指针、引用计数。介绍了make_shared的作用以及原理

2023-08-31 18:17:53 1650

原创 C++——Vector:push_back和emplace_back的区别,测试写入1GB大数据时的性能差距

介绍了push_back和emplace_back的区别以及应用场景,测试了写入大数据时的性能差距。

2023-08-31 16:25:50 817

原创 C++——vector:resize与reserve的区别,验证写入4GB大数据时相比原生操作的效率提升

介绍resize和reserve的区别,测试写入4GB大数据时性能的差距

2023-08-31 15:11:11 793

原创 C++——多线程编程:<condition_variable> && <atomic>,同步与生产者消费者模型

本文介绍了条件变量的介绍,原理和使用。提到了死锁问题、惊群效应、虚假唤醒三个话题。利用上一节的mutex和本节的condition_variable编写了一个简易的生产者消费者模型。

2023-07-21 13:07:44 224

原创 C++——多线程编程:<thread> && <mutex>,线程与互斥

thread:包括成员方法,std::ref,std::this_thread。mutex:四种mutex锁,两种RAII的锁管理器。分别附带使用示例。

2023-07-16 19:16:25 367

原创 Linux——内核概念

本文简要介绍了Linux内核的概念、承担的角色、工作的方式等。介绍了Linux内核的设计方式,引出了ELF文件格式。最后谈及宏内核与微内核的概念。

2023-07-09 15:19:16 591

原创 C++——string和string_view

string是C++中处理字符串的常用工具,但是存在一些缺点。C++引入了string_view。本文介绍了string_view的优势、使用、原理和注意事项。

2023-07-09 14:48:30 1663

原创 Linux——文件的概念、操作和理解

简要介绍了文件的概念、语言和系统层面的接口。文件描述符、重定向。文件、语言、系统级别的缓冲区。文件的软硬链接。最后借助系统调用模拟实现了C语言的文件接口。

2023-06-24 12:49:35 385

原创 Linux——进程控制:创建、终止、等待、替换

简要介绍Linux下进程的控制方式,包括创建进程,终止进程,等待进程,进程程序替换。介绍了各种接口以及调用方式

2023-06-24 12:25:30 457

原创 Linux——进程地址空间,写时拷贝,进程独立性

简要介绍了Linux下的进程地址空间,介绍了写时拷贝机制,以及保证进程独立性的前提

2023-06-24 11:37:48 584

原创 Linux——进程的概念

简要介绍Linux系统下进程的概念

2023-06-24 11:22:19 914

原创 C++——多态概念及多态原理、虚表指针及虚函数表

虚表指针与虚函数表,多态的概念,条件,应用,原理,以及拓展。

2023-03-24 23:38:26 215 1

原创 C++——网络聊天室,UDP实现Linux服务器和Windows客户端通信

实现Windows客户端与Linux服务端的通信。

2023-03-11 13:46:09 2121 1

原创 C++——new,delete,与placement new。

介绍new和delete原理、用法、常见错误、介绍定位new

2023-02-21 14:55:51 457

原创 C++——const、指针和引用,深度理解

介绍引用,对比指针,const与指针和引用的使用,引用的使用场景

2023-02-14 16:43:49 924

原创 C++——类和对象一文解

一文解!六大成员函数,重载、友元,this指针、static关键字

2022-08-23 14:03:21 493

原创 C++——函数重载的原理,为何重载,如何重载

C++函数重载的简介,通过Linux反汇编查看重载的原理。

2022-08-04 00:00:55 830

原创 STM32——定位模块ATGM336H,数据解析,提取经纬度

STM32F103C8T6,定位模块数据解析,提取经纬度原始数据并转换,串口通信。

2022-07-20 21:15:26 21582 36

原创 STM32——ADC读取光敏传感器控制LED灯,看门狗中断

STM32,ADC读取光敏传感器,配置看门狗中断

2022-07-20 14:33:54 7535 11

原创 STM32——通用定时器控制超声波传感器HCSR04

STM32F103C8T6,定时器控制超声波传感器HCSR04

2022-07-20 12:57:26 3534 1

原创 STM32学习笔记——EXTI外部中断,光敏传感器控制LED灯

STM32F103C8T6,EXTI外部中断学习

2022-07-05 14:55:50 2588 3

原创 STM32学习笔记——GPIO,点灯之路第一步

STM32F103C8T6学习笔记——GPIO

2022-07-04 14:19:46 2133

原创 C语言学生成绩管理系统——检查学号姓名,双向循环链表

检查学号和姓名格式、插入排序、保存本地磁盘,双向带头循环链表。

2022-06-18 17:22:06 1795 2

原创 C语言实现数据结构——顺序队和链队

C语言实现数据结构之队列:顺序队和链队。

2022-04-08 23:15:22 1434

原创 C语言实现数据结构——顺序栈与链栈

C语言实现顺序栈与链栈的基本功能。

2022-04-02 21:38:42 2139

原创 C语言实现数据结构——双向带头结点的循环链表

单链表进化,双向链表的介绍与功能实现

2022-03-27 20:19:24 1907 3

原创 C语言实现数据结构——单链表

C语言实现单链表的基础功能(严蔚敏C语言)

2022-03-22 21:29:29 3571 4

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

介绍C语言的动态内存管理函数以及常见的错误使用案例

2022-03-18 13:00:00 478

原创 C语言实现数据结构——顺序表

C语言实现顺序表的增删查改(严蔚敏C语言第二版)

2022-03-14 20:21:19 2171 2

原创 C语言结构体——内存对齐细则

结构体的使用、内存对齐以及注意事项

2022-03-10 13:00:00 650

原创 sizeof 和 strlen于指针和数组的应用

在C语言中,我们时常需要计算和统计一个对象的空间大小或“长度”,我们便可以运用sizeof 和 strlen 来简便地得到结果,但是这俩在使用的时候仍有不少值得注意的细节。sizeof在C语言中,sizeof是一个判断数据类型或者表达式长度的操作符,而并非一个函数。在初见sizeof时我以为这是一个函数,在后面查阅资料才知道并不是函数而是操作符。其返回值是一个对象或类型所占用的内存字节数,返回类型为size_t,也就是unsigned int。sizeof的语法:sizeof (data type

2022-03-06 11:14:22 1062

原创 数据存储之道——浅谈整型与浮点型存储方式有何不同

单精度和双精度浮点数存储的特殊性

2022-01-23 17:46:00 2294

原创 C语言实现简易三子棋,支持双人对战,电脑可拦截

在学习二维数组后我们加以应用能写出三子棋这样一个小游戏。具体实现并不复杂。基本思路:游戏首先打印菜单,由我们选择单人游戏,双人游戏或退出游戏。三子棋需要一个棋盘,我们可以通过循环打印来构造一个简单的3x3棋盘。我们需要一个函数在每次下棋子后都打印一次来表示目前的棋盘,于是创建一个二维数组接收棋子后方可遍历打印。我们用 * 和 # 代表两种棋子。游戏过程中玩家输入下标下棋后电脑下,直到决出胜负或平局。直接看代码。我们在写程序的时候要将函数模块化,不把所有函数都堆在一个源文件里。我们新建一个主

2021-11-08 21:02:50 4399 2

原创 C语言 3位数水仙花数以及牛客网变种水仙花数,多种方法求解

先看水仙花数:输出所有的水仙花数,水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153=1^3 + 5^3 + 3^3思路:我们要做的是把三位数逐位拆开,因此我们可以定义三个变量用于存储各位。解法:用循环遍历100到1000之间,即所有的三位数。拿153举例,得到各位数后用三个变量接收,如果各位的三次方相加等于 153 ,即打印 153 。上代码。#include<stdio.h>int main(){ for (int i = 100;i < 1000

2021-11-02 15:15:59 2333

原创 多组输入,scanf的与按位取反操作符的运用。

scanf与取反操作符的妙用。

2021-11-01 19:41:20 844

原创 C语言Static关键字简述。

C语言static关键字简述

2021-10-26 19:39:37 158

空空如也

空空如也

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

TA关注的人

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