自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 内存管理

摘要:本文介绍了C/C++程序的内存区域划分和动态内存管理机制。内存分为内核空间、栈、堆、数据段和代码段等区域。C语言通过malloc/calloc/realloc/free函数管理堆内存,而C++的new/delete操作符还能处理对象构造和析构。详细解析了operator new/delete的实现原理,以及定位new表达式在内存池中的应用。对于自定义类型,new/delete会调用构造/析构函数,这是与malloc/free的主要区别。文章还介绍了内存管理的底层实现机制和重载方法。

2026-01-17 22:35:22 897

原创 C语言指针进阶

本文介绍了C语言中指针的高级应用:1.字符指针可指向字符变量或字符串常量;2.指针数组是元素为指针的数组;3.数组指针指向整个数组,与普通指针在运算时有区别;4.数组传参时一维数组可用数组或指针形式,二维数组需指定列数或用数组指针;5.函数指针存储函数地址,可通过两种方式调用函数。文中还强调了数组名与取数组地址的区别,以及指针在内存访问中的特性。这些概念对理解C语言内存管理和函数调用机制至关重要。

2026-01-17 17:59:02 458

原创 C++ 类和对象(完)

本文探讨了C++中构造函数的初始化方式、静态成员、友元和内部类等特性。构造函数推荐使用初始化列表,尤其对于引用、const成员和自定义类型;explicit关键字可防止隐式转换。静态成员属于类而非对象,需在类外定义,静态函数无this指针。友元函数和友元类可突破封装访问私有成员,但会破坏封装性。内部类是独立类,天生是外部类的友元,可直接访问外部类的静态和私有成员。这些特性在提高代码灵活性的同时,也需谨慎使用以保持良好封装。

2026-01-16 23:00:44 584

原创 C++ 类与对象(二)

C++编译器会为空的类自动生成6个默认成员函数,包括构造函数、析构函数、拷贝构造函数、赋值运算符重载以及取地址重载函数。构造函数用于初始化对象,析构函数负责资源清理,拷贝构造函数实现对象复制,赋值运算符重载处理对象赋值。其中,拷贝构造函数必须使用引用参数以避免无限递归。const成员函数通过修饰this指针保证不修改对象状态。这些默认函数对内置类型和自定义类型有不同的处理方式,开发者应根据需要选择是否显式实现这些函数,特别是涉及资源管理时需要特别注意深拷贝问题。

2026-01-16 09:00:00 1293

原创 C++类与对象(一)

本文对比了C语言(面向过程)与C++(面向对象)的核心差异,重点介绍了C++类的特性。面向过程关注解决问题的步骤,而面向对象通过对象交互完成任务。文章详细讲解了类的定义方式(struct到class的演进)、访问限定符(public/protected/private)及封装特性。同时阐述了类的作用域、实例化过程以及对象内存模型(仅成员变量占用空间,空类占1字节)。最后深入解析this指针的原理及其特性,通过实例说明空指针调用成员函数时的不同表现。这些内容构成了C++面向对象编程的基础知识体系。

2026-01-16 02:57:29 759

原创 Linux指令和权限

本文介绍了Linux系统常用命令及权限管理。基础操作包括:目录查看(ls)、路径切换(cd)、文件创建(touch)与删除(rm)、复制移动(cp/mv);文件内容查看工具(cat/less/head/tail);时间(date)、帮助(man)等辅助命令。重点讲解了权限系统:文件属性(-rwxr-xr--)、用户角色(root/普通用户)、权限修改(chmod/chown)方法,特别说明目录写权限的特殊性及粘滞位(+t)的作用。同时涉及查找命令(find/grep)和默认权限计算(umask)机制。全文系

2026-01-14 22:50:09 635

原创 C语言数据存储

摘要:C语言数据类型包括整型(char,short,int等)、浮点型(float,double)、构造类型(数组,结构体等)、指针类型和空类型(void)。整型采用补码存储,便于统一处理符号位和加减运算。数据存储涉及大小端模式:大端高位在前,小端低位在前(如x86)。浮点数遵循IEEE754标准,存储符号位S、有效数字M(隐含首位1)和指数E(需加偏置值)。32位float为1+8+23位,64位double为1+11+52位。

2026-01-09 20:50:58 350

原创 C++ 入门知识点

C++相较于C语言新增了31个关键字,总数达63个,主要用于支持面向对象、泛型编程等特性。关键改进包括:命名空间解决命名冲突;更安全的输入输出机制;缺省参数和函数重载提升灵活性;引用作为安全别名替代指针;内联函数优化性能;auto关键字简化类型声明;基于范围的for循环增强迭代;nullptr明确空指针语义。这些特性使C++在保持C兼容性的同时,显著提升了代码安全性、可读性和开发效率,特别适用于大型软件开发。

2026-01-06 16:39:06 751

原创 C语言结构体

本文介绍了结构体的基础知识与使用方法。主要内容包括:1)结构体声明语法及注意事项;2)变量的两种定义方式和初始化方法(普通初始化和嵌套初始化);3)结构体成员的访问方式(点操作符和箭头操作符);4)结构体传参时的注意事项,强调在处理大型结构体时应优先使用传址方式而非传值,以减小系统开销提升性能。文章系统性地讲解了结构体的基本概念、定义初始化、成员访问和传参优化等核心知识点。

2026-01-05 21:01:25 387

原创 C语言指针

本文系统介绍了指针的核心概念与应用。首先明确了指针的本质是内存地址,其大小随机器位数变化(32位4字节,64位8字节)。其次详细解析了指针类型的两大意义:决定解引用访问的字节数和指针运算的步长。接着探讨了野指针的成因及防范措施,并阐述了指针与数组的密切关系(数组名即首元素地址)。此外,还介绍了二级指针的概念和指针数组的定义。全文通过清晰的逻辑结构,全面呈现了指针在内存操作中的关键作用和使用规范。

2026-01-05 18:21:19 294

原创 C语言操作符

本文总结了C语言中各类操作符的使用规则和注意事项,包括算术、移位、位、赋值、单目、关系、逻辑等操作符。重点介绍了除法/取模规则、移位操作类型、位操作应用、复合赋值、自增自减顺序、关系判断陷阱、逻辑短路特性等关键知识点。同时讲解了表达式求值中的整型提升、算术转换原则,以及操作符的优先级和结合性。特别强调要避免未定义行为,如负移位、复杂表达式求值顺序等问题。这些操作符规则是C语言编程的基础,正确理解对编写可靠代码至关重要。

2026-01-05 14:16:34 377

原创 C语言数组

【代码】C语言数组。

2026-01-04 18:45:00 577

原创 C语言函数

摘要:函数是完成特定任务的独立代码块,分为库函数和自定义函数。库函数通过头文件调用,自定义函数由程序员编写。函数参数包括实参和形参,形参是实参的临时拷贝。函数调用有传值和传址两种方式。函数可嵌套调用但不能嵌套定义,支持链式访问。函数需先声明后定义,递归函数需有终止条件,但效率可能低于迭代。

2026-01-04 14:18:28 354

原创 C语言分支与循环

摘要:C语言控制语句分为分支(if/switch)、循环(while/for/do-while)和转向(break/goto等)三类。if语句需注意else匹配最近if的规则;switch要求整型表达式且必须用break避免穿透。三种循环中for最常用,将初始化、判断和调整集中处理。break终止整个循环,continue跳过本次循环。goto可用于跳出多层嵌套循环。C语言中0为假,非0为真,这是判断语句的基础逻辑。

2026-01-04 00:38:51 443

原创 【C++】初阶模板

当我们要实现一个交换函数的时候,以我们现在的水平要实现一个很简单,但是我们是实现的函数仅仅可以对对指定类型进行交换,假设我们要实现一个int类型,我们就要写一个支持int类型更换的函数,只要类型一换我们就要重新写一个,而且重新写一个的底层逻辑基本是一样,这样就会造成我们的代码很冗余。而今天我们要讲的内容就很好的解决了这个问题——模板。

2023-12-05 19:38:38 772

原创 【C++】C/C++内存管理

①调用operator new函数申请空间;②在申请空间上执行构造函数,完成对象构造。①在空间上执行析构函数,完成对象资源清理工作;②调用operator delete函数释放空间。①调用operator new[]函数申请空间,operator new[]中实际调用operator new函数完成N个对象空间的申请;②实际调用了N次构造函数。①在释放的对象空间上执行N次析构函数,完成N个对象中资源的清理;

2023-12-04 20:16:07 1160

原创 【C++】类和对象(下)

前面两篇文章我们一共讲述了类和对象的六个默认成员函数,这篇文章我们将接着继续讲。

2023-09-18 00:27:46 344

原创 【C++】类和对象(中下)

文章到这,我们关于类的六个默认成员函数已经介绍完了,也是构造函数,析构函数,拷贝构造函数,赋值运算符重载,const成员函数,取地址及const取地址操作符重载。

2023-09-15 23:22:56 463

原创 【数据结构】堆的应用——Top-K

上篇文章我们学习了二叉树的顺序存储结构,并且对于实际使用中所常用的顺序存储结构——堆的各个接口进行实现。这篇文章我们将对堆的实际应用进行更加深入的研究。到这里,我们今天关于Topk问题的研究就全部结束了,难度不大,最主要是结合具体情况,选择最合适的方法建堆。

2023-07-16 00:20:06 2197 3

原创 【数据结构】树与二叉树(中)

上篇文章中,我们认识了树与二叉树相关概念以及两种常见的存储结构,而今天我们将对顺序存储结构进行实现的讲解。这篇文章我们完整的认识、了解、学习了二叉树顺序存储结构的相关知识,并且对二叉树顺序存储进行实现——堆的各接口实现。至此,关于二叉树的顺序存储的知识我们就全部学习完毕了。

2023-07-14 16:24:20 796 1

原创 【数据结构】树与二叉树(上)

我们已经学习了顺序表和链表的相关知识点,并且我们也通过结合相关知识,实现了对栈和队列各项接口功能的实现。而今天开始,我们将进入树与二叉树的学习,介绍它们的相关概念、结构与使用的相关知识。这篇文章中,主要介绍和讲解树和二叉树的相关概念与结构。到这里,我们对树与二叉树有了一个认识,对二叉树的两种存储结构也有了一定的了解。本文中理论和概念的知识较多,只有将这些概念理解吸收,才能顺利的进入后面更加晦涩的知识学习。

2023-07-14 02:23:29 868

原创 【C++】类和对象(中上):类的六个默认成员函数——构造函数、析构函数、拷贝构造函数!

上一篇文章我们浅浅的了解类与对象,知道了如何定义一个类,而今天我们更加深入的了解类与对象,也就是了解类的六个默认成员函数。接下来让我们进入学习。初学者对于构造函数,析构函数,拷贝构造函数时一大难点,所以需要下去多练习多思考。

2023-05-24 23:15:50 1643 4

原创 【C++】类和对象(上):带你速度了解什么是类,如何定义类!!

带你速度了解什么是类,如何定义类,搞懂成员函数如何知道应该设置对象!!

2023-05-20 16:30:07 956 5

原创 【C++】C++入门

上一篇文章我们认识C++的关键字、命名空间、C++输出和输入、缺省参数、函数重载、引用,今天我们接着继续学习;到此我们C++入门就算学完了,C++入门所讲解的都是针对C语言的缺陷进行改进,更多的是语法,会比较枯燥,需要大家动手去练习熟悉它们。

2023-05-17 23:11:16 650 4

原创 [C++]C++入门(一)

今天开始我们就进入C++学习。C++是在C的基础上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程方式等等。所以说C++跟C语言有很大的关系,一般情况下学C++前都需要先学C语言。可以说C++就是补充了C语言语法的不足之处。本次讲解的都是从C语言过度到C++所改进的一些东西,这些东西更加偏向于语法,可能会有点抽象,需要大家反复理解。

2023-05-09 01:28:33 749 2

原创 【数据结构】解析队列各接口功能实现

在上一章中我们使用数组实现了数组栈各接口功能的实现,对各接口的原理和工作方式有了一定了解,而今天,在这节课我们将使用链表来实现队列的相关接口功能。现在我们进入今天的学习。队列是一种特殊的线性表,它允许在表的的前端进行删除,而在表后端进行插入操作,也就是先进先出。它和栈一样,队列也是一种操作说限制的线性表。进行插入操作的一端称之为队尾,进行删除操作的端称之为对头。队列的元素又叫队列元素。在队列中插入一个队列元素称之为入队,从队列中删除一个队列元素称之为出队。

2023-04-15 23:30:33 578 14

原创 【数据结构】栈各个接口的实现

前面我们已经学习了顺序表和链表的相关知识和对各个接口实现,而今天我们将对栈进行学习。今天对栈的实现到此就结束,分别讲解栈的概念和栈接口的实现,我今天使用数据实现栈,大家理解完之后,可以尝试使用链表实现,帮助自己更好的理解和使用栈的相关操作。文章仍有许多不足,欢迎大家私信交流。

2023-04-11 01:28:38 627 14

原创 【数据结构】详解单链表

链表

2023-03-29 22:39:27 177 10

原创 【数据结构】顺序表的深度刨剖析

顺序表的实现

2023-03-26 14:15:20 809 18

原创 【数据结构】还不懂算法复杂度?一文带你速解

玩转算法复杂度

2023-03-18 12:32:09 1578 16

原创 【C语言进阶】文本与二进制操作文件,优化通讯录。

文本与二进制操作文件,优化通讯录。

2023-03-09 16:47:42 601 11

原创 【C语言进阶】你真的懂数据文件吗?一文带你了解什么是数据文件

文件操作

2023-03-06 18:33:56 2678 25

原创 【C语言进阶】还不知道什么是柔性数组?一文带你了解柔性数组

还不知道什么是柔性数组?一文带你了解柔性数组

2023-03-03 23:21:32 932 29

原创 【C语言进阶】详解C语言动态内存管理

一文带你速通C语言动态内存管理内容

2023-03-02 15:18:14 768 12

原创 实战:通讯录的实现(附带源码)

C语言通讯录的实现

2023-02-28 22:43:10 2337 2

原创 【C语言进阶】详解结构体

详解C语言结构体

2023-02-26 12:56:53 231 4

原创 【C语言进阶】字符串处理函数的介绍

字符串处理函数的介绍

2023-02-24 16:15:52 2304 7

原创 【C语言进阶】详谈指针

【C语言进阶】详谈指针

2023-02-23 20:17:59 201 4

原创 【C语言进阶】数据在内存中的存储

【C语言进阶】数据在内存中的存储

2023-02-19 22:36:53 142

原创 浅讲c语言结构体

浅讲c语言结构体

2023-02-19 00:21:52 124

空空如也

空空如也

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

TA关注的人

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