自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git使用完全指南

版本控制(Version Control)是一种记录文件(或项目)内容变化,以便将来查阅特定版本修订情况的系统。简单来说,版本控制就像“时光机”,可以记录你对文件的每一次修改(如添加、删除、修改内容),随时可以回滚到任意历史版本,也能追踪每一次修改的作者、时间和修改内容。多人协作时,避免代码覆盖、冲突;追踪每一次代码修改,明确修改责任人,便于问题排查;可以随时回滚到历史版本,解决误修改、代码 bug 等问题;隔离不同的开发任务(如功能开发、bug修复),避免相互干扰;

2026-04-05 21:25:42 267

原创 Linux进程管理完全指南

进程(Process)是指计算机中正在运行的程序的实例,是操作系统进行资源分配和调度的基本单位。简单来说,程序是静态的指令集合(如/bin/ls、/usr/sbin/nginx等可执行文件),而进程是动态的执行过程——当用户执行一个程序时,操作系统会加载该程序到内存,分配CPU、内存、文件描述符等资源,创建对应的进程控制块,程序开始执行,这个动态的过程就是进程。

2026-04-05 21:18:35 321

原创 VS2022下载与全面使用指南

在进行下载和使用之前,先全面了解VS2022的核心特性,有助于我们更好地利用这款工具,明确其优势与适用场景,避免盲目下载和使用,同时也能根据自身开发需求,精准选择对应的组件和配置,提升开发效率。微软官方为VS2022提供了四个主要版本,分别是社区版(Community)、专业版(Professional)、企业版(Enterprise)和构建工具版(Build Tools),各版本的功能、适用人群和授权方式不同,开发者需根据自身需求选择,避免下载不必要的版本,浪费存储空间和系统资源。

2026-04-05 21:08:18 314

原创 C++代码格式规范

C++代码格式规范是提升代码可读性、可维护性、可扩展性的核心基础,也是团队协作开发的必备准则,更是专业开发者素养的直接体现。规范的代码格式并非“形式主义”,而是经过长期开发实践总结的实用准则——它不仅能让开发者快速理解代码逻辑、降低阅读与沟通成本,还能避免因格式混乱导致的语法隐患、逻辑误解,减少调试时间,同时便于后续代码的修改、迭代与多人协作维护。无论是个人独立开发,还是大型团队协同项目,统一的代码格式都能显著提升开发效率,保证代码质量的一致性,为项目长期稳定发展提供支撑。

2026-04-04 19:31:26 361

原创 C语言与C++语言发展历史详解

C语言与C++语言的发展,见证了计算机技术从底层硬件控制到大型复杂系统开发的演进历程。C语言作为面向过程编程的经典,奠定了现代编程语言的基础,凭借其高效性和可移植性,在底层开发领域始终占据不可替代的地位;C++则在C语言的基础上,融入面向对象思想,不断迭代升级,兼顾了底层效率和高层开发的灵活性,成为大型项目开发的首选语言之一。展望未来,随着物联网、人工智能、嵌入式系统等领域的发展,C语言在底层开发、嵌入式开发中的需求仍将保持稳定;

2026-04-04 19:01:35 356

原创 深入剖析C语言结构体存储规则:内存对齐原理与实战详解

结构体的存储规则,核心是“内存对齐”,其本质是CPU硬件架构对内存访问的要求,编译器通过自动填充字节,实现效率与兼容性的平衡。三大核心规则:起始地址对齐(第一个成员偏移量0)、中间成员对齐(偏移量是自身对齐数的整数倍)、整体收尾对齐(总大小是最大对齐数的整数倍);对齐数的计算:默认对齐数=成员自身大小,手动对齐数=min(成员自身大小, 手动设置的n);实战技巧:调整成员顺序减少填充字节,根据场景选择默认对齐或手动对齐;易错点:避免忽略填充字节、忘记恢复默认对齐、嵌套结构体对齐数计算错误。

2026-04-04 18:55:40 351

原创 三足鼎立:Linux、苹果macOS与微软Windows的前世今生及核心差异

从20世纪80年代的图形界面革命,到21世纪的云计算、物联网浪潮,微软Windows、苹果macOS与Linux始终在各自的赛道上迭代进化,它们诞生于不同的时代背景,承载着不同的开发理念,经历了不同的发展坎坷,最终形成了如今三足鼎立的格局。它们没有绝对的优劣之分,只有不同的定位与适配场景,各自在不同的领域发挥着重要作用。微软Windows凭借精准的商业嗅觉和完善的生态布局,普及了个人电脑,改变了人们的工作与生活方式,成为大众市场的绝对主导者;

2026-04-03 10:50:50 391 2

原创 C++ 位运算从入门到精通(全知识点+面试题+实战应用)

本文系统介绍了C++位运算的核心知识与实战应用。主要内容包括:1)位运算基础概念,如二进制补码表示和6种基础运算符(与、或、异或、取反、左移、右移)的特性;2)运算符详解与典型应用场景,如使用按位与判断奇偶性、按位或设置标志位、异或交换变量值等;3)高效位操作技巧,如清除最低位1、提取特定位等。文章通过代码示例展示了位运算在算法优化、权限控制等场景的高效应用,特别适合需要提升程序性能的开发者和准备技术面试的求职者学习。

2026-04-01 17:34:10 310

原创 【Linux 项目自动化构建工具 -- make/makefile && 版本管理 Git 的使用&&第一个程序

本文介绍了Linux下make和makefile的基本概念及使用方法。makefile是一个用于项目自动化构建的文件,定义了源文件之间的依赖关系和编译规则。文章通过C语言示例展示了makefile的基本编写格式,包括依赖关系和依赖方法的定义。重点讲解了make的工作原理,包括目标文件的查找顺序、依赖关系的递归处理机制,以及如何利用.PHONY声明伪目标实现项目清理功能。同时分析了make防止重复编译的原理,解释了Linux文件的三种时间属性(访问时间、修改时间和改动时间),并说明make通过比较文件修改时间

2026-04-01 13:57:32 610

原创 【Linux】软件包管理器 yum&&编辑器 vim && 编译器 gcc/g++ && 调试器 gdb 的基本使用

本文介绍了Linux系统中的软件包管理工具yum和文本编辑器vim的基本使用。主要内容包括: yum背景知识 分析了商业软件生态和开源软件生态的区别 解释了软件生态本土化的必要性及国内镜像源的配置方法 yum基本操作 查看软件包(yum list) 安装/卸载软件(yum install/remove) 注意事项:需要root权限、网络连接等 vim编辑器使用 三种主要模式:命令模式、插入模式、底行模式 模式切换方法及常用快捷键 文本编辑、光标移动、复制粘贴等操作 底行模式特有功能如设置行号、分屏等 文章详

2026-03-31 16:48:41 451

原创 【linux】linux权限的详细讲解

Linux权限管理摘要 Linux权限系统包含用户分类、文件权限和权限管理三部分核心内容。系统中有超级用户(root)和普通用户两种,通过su/sudo命令可切换用户或提权。文件权限涉及三类用户:所有者(u)、所属组(g)和其他用户(o),通过rwx字符或八进制数值表示读写执行权限。 关键权限操作命令包括: chmod - 修改文件权限(字符或数字格式) chown - 修改文件所有者 chgrp - 修改文件所属组 umask - 设置默认权限掩码 文件类型通过首字符标识(如d目录、-普通文件等)。权限管

2026-03-31 16:48:16 446

原创 【Linux】基本指令

Linux是一种开源的类Unix操作系统,其内核由Linus Torvalds于1991年发布。Linux系统具有稳定、安全、快速和免费的特点,广泛应用于服务器、移动设备和嵌入式系统。本文首先介绍了Linux的基本概念和特点,然后讲解了操作系统的核心功能——管理软硬件资源并提供良好的运行环境。文章重点介绍了常用的Linux基本指令,包括ls(查看目录内容)、pwd(显示当前路径)、cd(切换目录)、tree(树状显示目录结构)、touch(创建文件)、mkdir(创建目录)、rm(删除文件/目录)、echo

2026-03-30 08:21:58 973

原创 C++ 进阶篇 多态

本文系统解析了C++多态机制的底层原理,重点探讨了虚函数和多态的实现条件。文章首先区分了编译时多态(静态多态)和运行时多态(动态多态),详细介绍了虚函数的概念、重写规则及两个特例情况。通过实例代码,阐述了多态构成的三大条件:继承关系、基类指针/引用调用、虚函数重写。特别分析了为什么必须通过基类指针/引用而非传值方式实现多态,并通过经典面试题揭示了虚函数参数默认值的继承特性。最后强调了基类析构函数声明为虚函数的重要性,以避免内存泄漏问题。全文深入浅出地剖析了C++多态的核心机制及其底层实现原理。

2026-03-29 11:51:13 356

原创 C++ 进阶篇 继承

本文介绍了C++继承机制的核心概念与应用。继承允许派生类复用基类特性并进行扩展,支持三种继承方式(public/protected/private)与访问限定符的组合。重点分析了派生类对象与基类对象的赋值转换规则(对象切片与指针/引用切片),以及继承中的作用域问题(同名成员隐藏机制)。文章强调public继承的实用性,并指出基类private成员始终不可见、protected成员的独特价值等关键特性,为理解面向对象编程中的代码复用提供了系统指导。

2026-03-28 16:10:50 572

原创 C++ 进阶篇 模板进阶详解

文章摘要: 本文深入探讨了C++模板编程中的非类型模板参数和模板特化技术。非类型模板参数允许使用常量作为模板参数,解决了类型模板参数灵活性不足的问题,在编译期确定数组大小等场景具有性能优势。文章对比了非类型模板参数与宏定义的区别,并介绍了C++11中的array类。在模板特化部分,详细讲解了函数模板特化的语法规则和常见陷阱,以及类模板的全特化与偏特化技术。通过日期类比较等示例,展示了如何针对特殊类型进行特殊处理,确保模板在不同场景下的正确行为。(149字)

2026-03-19 20:47:05 479

原创 C++ 初阶篇 STL 模拟实现之stack&queue的使用及其模拟实现

本文介绍了STL中的容器适配器stack和queue。它们基于底层容器(如deque、vector等)封装实现特定操作逻辑,stack遵循LIFO原则,queue遵循FIFO原则。文章解释了容器适配器不支持迭代器的原因,并通过代码模拟实现了这两种数据结构。此外,还分析了deque作为双端队列的底层实现和优缺点。最后通过示例代码展示了stack和queue的基本操作,帮助理解STL设计思想和数据结构基础。

2026-03-18 15:37:50 629

原创 C++ 初阶篇 STL 模拟实现之 list的使用及其模拟实现

本文详细介绍了C++ STL中list容器的实现原理与使用方法。首先分析了list作为双向链表的底层结构特点,包括节点设计、迭代器实现原理以及高效插入删除的机制。然后系统讲解了list的常用接口,包括构造函数、增删查改操作,并特别说明了swap接口的优化实现。重点阐述了list特有的操作接口,如splice元素转移、remove移除指定值、unique去重、merge有序合并和sort排序等,通过代码示例展示了这些接口的具体使用场景和效果。文章不仅说明了list相对于其他序列容器的优势,也指出了其不支持随机

2026-03-17 19:53:53 715

原创 C++ 初阶篇 STL 模拟实现之 vector的使用及其模拟实现

本文介绍了C++中vector容器的核心特性与使用方法。作为动态数组,vector兼具数组的高效访问和自动扩容的优势。文章详细讲解了vector的四种构造函数、三种遍历方式(下标、迭代器、范围for)以及关键容量操作(resize/reserve)。特别分析了vector的扩容机制(VS下1.5倍,Linux下2倍)和内存管理策略。还介绍了元素访问方法([]和at()的区别)及注意事项。通过示例代码演示了vector的基本操作,强调其作为STL基础容器的重要性,为开发者深入理解vector的底层实现提供了实

2026-03-11 16:24:03 618

原创 C++ 初阶篇 STL简介 -- string 的使用及其模拟实现

C语言中,字符串是以’\0’结尾的若干个字符的集合,为了操作方便,C语言 string.h 头文件提供了一些系列的库函数,但是这些库函数与字符串是分离开的,不符合面向对象的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。基于上面这些原因,C++标准库提供了 string 类,string 类中提供了各种函数接口,比如类的六个默认成员函数、字符串插入删除、运算符重载等等,我们可以使用 string 来实例化对象,然后通过 string 的各种接口来完成对该对象的各种操作。

2026-01-12 14:20:50 1058

原创 C++ 初阶篇 日期类接口实现与 const 成员函数深度解析

本文介绍了如何用C++实现一个Date类,主要包含以下内容: 日期类的默认成员函数实现,包括带日期合法性检查的构造函数、拷贝构造、赋值运算符和析构函数 日期加减运算的重载实现,包括日期加减天数、日期自增自减以及日期减日期计算天数差 比较运算符重载的实现,通过复用部分运算符简化代码 输入输出流运算符重载的实现,使用友元函数支持链式调用 const成员函数的解析与应用,通过const修饰成员函数保护对象不被修改 实现中注重代码复用和健壮性,使用静态数组存储每月天数,并考虑了闰年情况。通过合理设计运算符重载,使D

2025-12-27 19:00:03 588

原创 C++ 初阶篇 模板初阶

函数模板是一个蓝图,它本身并不是函数,是编译器在使用时用于产生特定具体类型函数的模具;所以其实模板就是将本来应该由我们做的重复的事情交给了编译器去做。template <typename 类型参数1, typename 类型参数2, ...>返回值类型 模板名(形参表)函数体关键字说明:typename用于声明模板参数类型,也可替换为class,二者在模板参数中完全等价(不能用struct(class和strcut的区别之一));

2025-12-27 12:49:45 1056

原创 C++ 初阶篇 动态内存管理

本文系统梳理了C/C++内存管理核心知识,重点对比了C语言和C++的内存管理机制差异。内容涵盖内存区域划分(栈、堆、静态区、常量区)、动态内存分配操作(malloc/free与new/delete)、以及二者在操作内置类型和自定义类型时的关键区别。特别指出C++的new/delete会自动调用构造函数/析构函数,这是与C语言malloc/free的本质区别。文章通过典型题目和代码示例帮助开发者掌握内存管理精髓,避免内存泄漏等常见问题,为高效安全的C/C++编程奠定基础。

2025-12-26 18:26:04 1267

原创 C++ 初阶篇 类和对象(下篇)

本文深入探讨了C++类和对象的进阶特性,包括构造函数的初始化列表、explicit关键字、static成员等核心概念。重点解析了初始化列表对引用成员、const成员和无默认构造函数类成员的必要性,以及成员变量初始化顺序的注意事项。同时介绍了explicit关键字防止隐式转换的作用,静态成员变量的共享特性和访问方式,为提升代码质量和效率提供了实用指导。

2025-12-26 14:42:40 1179

原创 C++ 初阶篇 类与对象(中) 六大默认成员函数

本文深入解析C++类中的6个默认成员函数,包括构造函数、析构函数、拷贝构造函数、赋值运算符重载等核心功能。重点探讨了这些函数的特性、使用场景及注意事项:构造函数负责对象初始化,析构函数处理资源清理,拷贝构造和赋值运算符涉及对象复制问题。文章通过日期类和栈类的代码示例,展示了何时需要自定义这些函数,并指出编译器默认生成的版本仅处理自定义类型成员,对内置类型不做操作。特别强调了动态内存管理类必须显式实现析构函数以避免内存泄漏。最后提及C++11新增的移动构造和移动赋值功能将在后续讲解。

2025-12-25 17:32:45 1271

原创 C++ 初阶篇 类与对象(上) 类和this指针

本文介绍了C++面向对象编程的基础概念,重点讲解了类与对象的定义和使用。主要内容包括: 面向对象与面向过程的区别:C++通过对象交互解决问题,将数据和方法封装在一起。 类的定义方式:使用class关键字定义类,包含成员变量和成员函数,通过访问限定符(public/protected/private)控制访问权限。 类域概念:类创建独立的作用域,解决命名冲突问题。 类的实例化:类只是设计图,实例化后才创建实际对象。 对象大小计算:对象只包含成员变量的空间,成员函数存放在公共代码区;空类对象占用1字节空间作为标

2025-12-22 14:48:20 1229 1

原创 C++ 入门篇 从C到C++

本文介绍了C++与C语言的主要区别,包括命名空间的使用、输入输出方式、缺省参数和函数重载等特性。命名空间解决了命名冲突问题,C++使用<iostream>的cout/cin替代<stdio.h>的printf/scanf。缺省参数为函数参数提供默认值,而函数重载允许同名函数根据参数类型、数量或顺序不同实现不同功能。这些特性使C++代码更简洁高效,是C语言向C++过渡的重要知识点。

2025-12-21 15:03:04 1105 2

空空如也

空空如也

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

TA关注的人

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