- 博客(219)
- 收藏
- 关注
原创 【数据结构】深入浅出:手把手实现动态顺序表,从此不再怕数组扩容!
还在为固定数组的空间浪费而烦恼?还在为数据结构的入门而头疼?本文带你从零开始,深入理解动态顺序表的实现原理。通过详细的代码解析和生动的类比,让你彻底掌握顺序表的扩容机制、插入删除操作,以及各种核心算法的实现细节。无论是初学者还是想要巩固基础的开发者,都能从中获益匪浅。
2026-01-14 21:39:55
698
原创 【C 语言专栏收官】预处理完全攻略:宏、条件编译与代码安全的最后一道防线
C 语言的预处理器是性能优化的利器,也是最容易导致程序崩溃的“陷阱区”。本文为中级 C 开发者提供了一套完整的预处理知识框架。您将深入理解宏的文本替换本质,掌握利用括号防御优先级陷阱和参数副作用的黄金法则。内容涵盖 # 字符串化和 ## 标记连接的高级技巧、#define 与 const/inline 函数的终极抉择,以及利用条件编译实现跨平台、Debug/Release 版本的代码隔离。
2026-01-13 22:12:52
716
原创 【C 语言】硬核避坑动态内存管理:从野指针到柔性数组的“防爆”指南
你是否还在为 C 语言的 野指针 和 内存泄漏 而头疼?程序崩溃、数据混乱、系统资源耗尽——这些都是堆内存管理不当的“致命伤”。本文将基于资深工程师的实战经验,为你从零构建一个可靠的知识框架。我们不仅会通过 深度表格 对比 malloc/calloc 的优劣,用 反面教材 演示 NULL 检查和越界访问的后果,更会揭秘 realloc **异地搬家**的隐形陷阱,并介绍高效的 柔性数组 技巧。掌握“黄金法则”,告别 C 语言的内存噩梦!
2026-01-11 19:39:42
1322
原创 【C 语言】从源码到可执行文件:彻底搞懂编译与链接全过程
很多人写了很久 C,却从未真正了解“代码是怎么被机器听懂的”。每次点击运行,无数看不见的机制正在工作——宏展开、词法分析、语法树构建、代码优化、符号解析、地址重定位……本文将以 array[index] = 4 + 2 * 10 + 3 * (5 + 1); 为例,带你拆解编译器从预处理 → 编译 → 汇编 → 链接 → 执行的完整流程,并用 Token 表、AST 图、高亮语义分析等方式可视化展示 C 程序的内部世界。
2026-01-10 21:40:58
1134
原创 【C语言】自定义类型详解:结构体、联合体、位段与内存对齐实战指南
作为C语言开发者,你是否还在为结构体内存对齐、联合体共享机制和位段跨平台坑而困惑?本文从基础回顾入手,深入剖析匿名结构体、自引用错误、内存对齐规则及嵌套计算,结合代码示例和内存布局图,教你优化空间、提升性能。还包括联合体大小计算、实际应用(如判断大小端)和位段在网络协议中的妙用。无论面试还是项目,这篇指南助你避坑,成为高效C码农!
2026-01-08 21:50:31
1424
原创 【C语言】彻底搞懂计算机底层:补码、大小端、IEEE 754,一文吃透数据在内存中到底怎么存!
这篇文章带你一口气彻底搞懂程序员一生都绕不过的三座大山:整数补码存储、大小端字节序、IEEE 754 浮点数标准。手把手教你两种代码检测当前机器是大端还是小端,配经典陷阱题(strlen 死循环、无符号倒序无限循环、指针越界取值、整型提升坑……)完整推导内存布局,看完这篇硬核长文,你将真正看见“数据在内存中长什么模样”,从此面对底层 bug、面试八股文、奇葩现象再也不懵。
2026-01-07 21:09:56
758
原创 【C 语言】征服文件 I/O:透视数据流、FILE* 核心机制与高效实践全指南
本文深度剖析 C 语言文件操作核心机制,实现数据的持久化存储。首先阐述了文件流 (Stream) 这一数据管道概念,以及FILE* 作为流的控制阀门的结构与职责。全面覆盖所有 I/O 方式:包括字符/行操作(fgetc/fputs)、格式化 I/O(fprintf/fscanf)以及随机读写(fseek/ftell)等实用技术。重点揭示了文件缓冲区提高 I/O 效率的工作原理与管理方法,并以详尽案例纠正了 feof 和 ferror 的常见误用。
2026-01-06 21:32:09
1459
原创 【C语言】指针终极挑战(5):这7道题能全对,指针就算真懂了!
指针是C语言的灵魂,却也是90%程序员的噩梦!本文直捣7道大厂/校招必考指针杀手题:从strlen(arr)与&arr的千年陷阱、数组名退化规则、&arr+1跳整个数组的玄学、sizeof多重身份切换、二维数组指针错位运算,到三级指针cpp[-1][-1]+1的致幻操作,全程手推+自绘内存图+64位真实运行截图。一文吃透数组与指针的所有核心本质,通关后面试再也不怕被指针虐,建议收藏反复刷!
2026-01-05 21:42:48
1059
原创 【C语言】指针的终极奥义(4):手撕 qsort 源码,揭秘 C 语言通用排序的黑魔法!
C 语言的 qsort 函数因其能够排序任何类型的数据而被称为“通用排序利器”。本文将从回调函数的核心概念出发,深度剖析 qsort 如何通过 void* 指针和函数指针实现代码的极致抽象。我们将以冒泡排序为骨架,完整模拟实现一个通用排序函数 bubble_sort_qsort,并详细讲解实现通用性所需的四个关键抽象:通用函数签名、按字节寻址、回调比较与逐字节交换。通过最终的运行结果,我们将证明这种基于回调的通用编程思想的强大与灵活。
2026-01-04 14:19:48
531
原创 【C语言】高级指针(3):彻底掌握指针数组、二维传参核心与函数转移表的构建艺术
本篇博客旨在深入剖析C语言中进阶指针的四大核心概念:首先,详解指针数组的本质和应用,并揭示二维数组传参时必须依赖数组指针来正确实现行间跳转的秘密。随后,深度剖析字符指针指向字符串常量时的内存机制,区分常量与数组的根本差异。最后,引入函数指针的概念,并演示如何利用函数指针数组构建高效的转移表(Jump Table),以取代复杂的条件分支结构,从而全面提升您的C语言编程能力和代码效率。
2026-01-04 14:19:33
985
原创 【C语言】指针深度剖析(2):从“数组名陷阱”到“二级指针操控”的进阶指南
数组名到底是指针还是整个数组?一维数组传参为何突然‘缩水’?一文带你拆穿 C 语言地址陷阱,从 arr[i] 到 **ppa,三步解锁高效内存操作!
2026-01-04 14:18:32
662
原创 【C语言】“灵魂”指针全攻略(1):从内存原理到野指针规避的七大核心知识点!
感觉指针像天书?每次遇到指针就头疼?别担心!指针是C语言高效灵活的灵魂所在。本篇超详细博客将带您从零开始,通过生动的“宿舍楼”类比,彻底理解内存、地址、指针的底层原理。文章详细解析了核心符号`&`和`*`的用法、指针类型决定“步长”的机制,以及传址调用等高级应用。读完本文,您将掌握:指针类型意义、指针运算、`const`权限限定,以及如何使用`NULL`和`assert`有效规避野指针。让您的C语言功底,真正做到直达底层、安全可靠!
2026-01-04 14:18:10
948
原创 【C语言】一文吃透进制转换:原理、公式、代码全解析
进制转换是所有编程技能的基石,它揭示了数据在计算机内存中的本质。本文旨在提供一份最详尽的C语言进制转换实战指南。我们将从二进制、八进制、十进制和十六进制的核心概念出发,深入剖析位权展开法和除N取余法的数学原理。最后,提供一套完整的C语言代码实现(包括手动实现和利用strtol等库函数),帮助您不仅知其然,更知其所以然,轻松应对各种转换场景。
2026-01-04 14:17:45
705
原创 【C语言】底层揭秘:函数调用背后的“黑魔法”——超详细图解函数栈帧的创建与销毁
函数调用是C语言中最频繁的操作,但其底层逻辑却隐藏在复杂的汇编指令中。你是否曾困惑于局部变量为何随机、传参为何从右向左、返回值如何瞬间带回?本文将带你深入程序的“幕后”,以 VS2019 编译器环境为实例,结合EBP/RBP、ESP/RSP两大核心寄存器,逐句拆解 main 函数调用 Add 函数时的完整汇编代码。通过清晰的图示和表格,我们将彻底揭开函数栈帧创建、传参、执行、销毁的全过程,让你从小白进阶为真正理解C语言底层机制的高手!
2026-01-04 14:08:45
1436
原创 【PTA】 L1-009 满分踩坑笔记,带负数、爆 long、0 分子、测试点一次讲透!
用一次循环完成有理分数累加,现场通分、约分,全程防溢出、自动处理负号、0 分子、带分数输出。文章给出逐行推导 + 易错数据类型,附可直接 AC 的 C 语言源码,1 ms 通过 PTA 全部测试点。
2026-01-04 14:08:12
821
原创 【C语言】入门必看四大内存函数全解析:memcpy、memmove、memset、memcmp
你是否总是被 C 语言中的内存函数弄混?memcpy 和 memmove 究竟有何不同?memset 是如何高效初始化内存的?memcmp 为什么能比字符串比较更灵活?别担心!这篇文章将从原理、代码实现、常见问题到优化技巧,全面剖析这四个内存函数的使用场景和注意事项。阅读完,你不仅能熟练运用这些函数,还能理解它们在 C 语言中的底层操作。
2026-01-04 14:07:24
1098
原创 【C语言】别再被字符串坑了:strlen/strcpy/strcat/strcmp/strstr/strtok/strerror 深入解析
这篇文章把 C 语言里你最常用、也最容易踩坑的字符/字符串函数一次讲透:ctype.h 的字符分类与大小写转换,string.h 的长度、复制、拼接、比较、查找与分割(strlen/strcpy/strncpy/strcat/strncat/strcmp/strncmp/strstr/strtok),再到错误信息 strerror/perror 的正确姿势。每个函数都给出典型用法、边界条件、UB 警告、线程安全建议,并配套手写模拟实现帮助你吃透原理。
2026-01-01 22:51:09
1308
原创 【C语言】还在玩扫雷?自己写一个!完整源码+详细讲解,让你彻底掌握递归算法与游戏逻辑!
你能想到的扫雷功能,这里都有:随机布雷、递归展开、标记旗子、自动胜负判定、清屏动画……本文手把手带你用 C 语言写出一个“能玩”的控制台扫雷游戏!不仅给出全部源码,还深入讲解背后的算法逻辑与边界处理技巧。学习完这篇,你不止能写扫雷,更能彻底吃透 二维数组、递归调用、函数模块化设计 的精髓。
2025-12-31 16:32:29
1182
原创 【C语言】零基础到精通:C 指针全景指南预览
系统梳理 C 语言指针知识体系:从内存地址、指针变量与类型开始,逐步深入到数组与指针、二维数组传参、函数指针、回调机制及转移表,并亲手模拟实现 qsort,揭示 sizeof 与 strlen 的本质差异。
2025-12-30 21:30:34
671
原创 【C语言】写一个能自定义规则的“N子棋”游戏!——支持任意棋盘、玩家对战、胜利条件自由设置!
还在玩固定的三子棋?来试试自己写个“能变形”的!本文手把手带你用 C 语言实现一个可自由设置棋盘大小与连线数量的 N子棋游戏 —— 不仅能玩“三子棋”,还能玩“五子棋”、十连棋!支持双人实时对战、清屏刷新、智能胜负判定、异常输入保护等功能。
2025-12-29 20:45:35
1134
原创 【C语言】函数递归详解(含汉诺塔动图演示)
递归(Recursion)是程序设计中最具思想性、也最容易被误解的概念之一。本文系统讲解了函数递归的核心原理与实现方法,通过阶乘、逐位打印整数及汉诺塔问题等示例,深入解析递归与迭代的区别,并附有三层与四层汉诺塔递归动图演示,帮助读者直观理解“分解与回归”的全过程。
2025-12-28 21:54:54
1105
原创 【C语言】告别位运算恐惧!C语言操作符详解大全
一张优先级速查表 + 进制/原反补/移位/位运算口诀,带你 5 min 学完 C 语言所有操作符!
2025-12-28 21:54:29
693
原创 【MySQL】 表的约束(下)
当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)自增长字段必须是整数一张表最多只能有一个自增长| 502 |唯一键就可以解决表中有多个字段需要唯一性约束的问题。唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。
2025-03-22 15:36:54
1035
原创 Tomcat的升级
拷贝原Tomcat内容到新Tomcat目录下,webapps下源码、conf下配置文件(比如server.xml文件[可以直接覆盖,但是备份一份再覆盖更佳])tar -zcvf oldTomcat.tar.gz 旧版本Tomcat目录。下载地址(官网):https://tomcat.apache.org/进入tomcat下bin目录,启动tomcat。老版本bin目录下,停止Tomcat服务。给新版本Tomcat目录添加执行权限。上传升级包至服务器对应目录。
2025-03-22 02:50:05
920
原创 SpringUtil获取Spring容器对象
*自己公司使用的简单的SpringUtil,可以使用直接从Spring容器中获取对象.比较方便. 主要就是实现ApplicationContextAware ,学过Spring的都知道,Spring提供一些实现Aware对应的类,来获取对应的信息,比如,
2025-03-22 01:14:02
533
原创 Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
这里只做演示和介绍,如果只需要了解在Java中使用可跳过,去看第四部分,但是这些还是很有必要了解一下。Docs。
2025-03-10 23:48:39
1308
原创 Spring Boot(七):Swagger 接口文档
Swagger 是一款 RESTful 风格的接口文档在线自动生成 + 功能测试功能软件。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。目标是使客户端和文件系统作为服务器以同样的速度(同步)更新文件的方法,参数和模型紧密集成到服务器。这个解释简单点来讲就是说,Swagger 是一款可以根据 resutful 风格生成的接口开发文档,API 文档与 API 同步更新,并且支持做测试的一款中间软件。
2025-03-10 17:49:06
1346
原创 Redis有什么作用?面试题答案
Redis能够用于地理位置应用是因为它支持了GeoHash类型,GeoHash是一个允许有一定误差的地理坐标,它的原理就是将地图画成很多个小格子,只记录坐标在哪个小格子里面,每一个小格子对应一个Hash数值,以此快速的进行Geo查询和操作。这里还涉及到了一个原子操作的问题,比如 key 为 a,我们读取 a,在内存+1运算得到 a+1 的结果,之后再去写入到Redis中,这个过程并非原子操作。Redlock算法的主要思想是在多个Redis实例上创建锁,这些实例可以是不同的节点或者不同的Redis集群。
2025-03-10 13:03:00
930
原创 phpStorm环境配置与应用
打开 PhpStorm,选择“File” -> “Settings”(或“Preferences”在macOS上)。选择“Project: YourProjectName” -> “Project Interpreter”。选择“VCS” -> “Enable Version Control Integration”。打开 PhpStorm,选择“Create New Project”。点击齿轮图标,选择“Add” -> “Local”。打开 PhpStorm,选择“Open”。确认设置后,点击“OK”。
2025-03-07 23:13:46
887
原创 MySQL 获取版本号的 N 种方法(全网最全以及避坑大全)
相信大家在工作学习中经常有需要查询 MySQL 数据库版本的情况,这里给大家介绍几种在 MySQL 中查询数据库版本的方法以及每种方法适用的场景,相信总有一种可以帮到你。另外,作者在写这篇文章的时候查看了全网多篇热门文章,发现了其中一些文章介绍的方法的疏漏,所以最后还有一个章节告诉你网上有哪些方法是错误的,不要错过哦。
2025-03-05 18:07:12
2758
原创 Java面试题记不了怎么办_java面试题怎么记?java面试要注意什么?
其实,这是很容易露馅的。有的应聘者认为,在面试时主考官肯定会出难题,但没有想到的是,主考官可能挑了一个相当简单的概念题,而应聘者则在阴沟里翻了船,支支吾吾说不清这个概念。学习完java之后,大家肯定是要出去找java相关的工作的,并且找工作都要面试,为了能够在面试中显示出自己的能力,很多小伙伴都想知道java面试题怎么记那么接下来,我们就来给大家讲解一下这方面的内容。其实面试java最主要的就是该掌握的要掌握,并且平时也要不断的提高自己的实践能力,这样在面试中才不会慌张,那么面试就会有很大就会成功哦!
2025-03-05 16:42:56
236
原创 Java框架SpringBoot(一)
Spring Boot 是由Pivotal 团队提供的在spring框架基础之上开发的框架, 其设计目的是用来简化应用的初始搭建以及开发过程Spirng Boot 本身并不提供Spring框架的核心特性以及扩展功能,只是用 于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具Spring Boot 以约定大于配置的核心思想(把开发中默认的做法直接进行简化),从而使开发人员。
2025-03-05 01:33:56
778
原创 Docker启动安装nacos(详情讲解,全网最细)
安装之前你需要准备一个mysql,当前安装方式是将数据持久化到数据库中的,这里的部署是单机模式。
2025-03-05 00:16:21
2529
2
原创 爬虫必备 -> Selenium 【自动更新chromedriver驱动】
??作者介绍:【】— CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者???《爬虫从入门到精通系列教程》???订阅专栏后****可加博主V信:GuHanZheCoder,进一千多人Python全栈交流群(手把手教学,问题解答);进群可领取Python全栈教程视频 + 各类计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。???加我一起学习进步,一个人可以走的很快,一群人才能走的更远!
2025-03-02 22:28:29
885
原创 安全测试必备工具——SQLMap 安装及基本应用
SQLmap是一款由python开发的用来检测与利用SQL注入漏洞的免费开源工具。支持多种数据库,如MySQL、Oracle、PostgreSQL、SQL Server、Access、IBMDB2、SQLite等数据库。有一个非常棒的特性,即对检测与利用的自动化处理(如数据库指纹、访问底层文件系统、执行命令)。此文中提到的工具及技术操作,仅用于学术交流,请遵守《网络安全法》,严禁将此文中工具和技术用于非法攻击测试。学无止境,行以致远!行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己。
2025-03-02 21:09:26
1016
原创 史上最全的Java进阶书籍推荐,你看了几本?
Effective Java是我读过的最好的编程书籍之一,它包含大量的优秀Java编程实践,并对泛型和并发这两个充满陷阱的Java特性给出了充满洞察力的建议,以至于Java之父James Gosling为这本书作序:“我很希望10年前就拥有这本书。看了两章就不看了,枯燥无味,看完就忘。是开发分布式程序的选项之一,不过我不喜欢,其实银行使用的也不怎么的。介绍:这本书名为《Java并发编程实践》有些抹杀了它的价值,其中并非只讲述了Java的多线程设施,对一般的并发编程的rationale也有相当透彻的阐述。
2025-03-02 19:30:38
23350
1
原创 【Redis系列】RedisTemplate的使用与注意事项
RedisTemplate 是一个工具类,由 Spring 官方提供的方便操作 Redis 数据库的一个工具类,来源于 org.springframework.data.redis.core 包下。其本质属于 Spring-Data 模块下的 Spring-Data-Redis 部分,它提供了从 Spring 应用程序轻松配置和访问 Redis的功能。
2025-02-28 23:42:38
2141
原创 【JAVA进阶篇教学】第十五篇:Java中AQS讲解
在 Java 中,AQS(AbstractQueuedSynchronizer)是一个用于实现同步器的抽象类,它提供了一种通用的机制来管理共享资源的访问。AQS 的主要作用是通过维护一个同步队列来实现对共享资源的同步访问,避免了多线程访问共享资源时可能出现的竞态条件和死锁等问题。
2025-02-28 22:04:59
782
原创 SQL之CASE WHEN用法详解
现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。当能耗值小于10时,使用P_LEVEL=0时的P_PRICE的值,能耗值大于10小于30使用P_LEVEL=1时的P_PRICE的值…如果表达式皆为false,则返回ElSE后result的值,如果省略了ELSE子句,则返回NULL。假设电能耗单价分为三档,根据不同的能耗值,使用相应价格计算成本。有能耗表如下:其中,E_TYPE表示能耗类型,0表示水耗,1表示电耗,2表示热耗。
2025-02-28 13:02:19
8254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅