C/C++
文章平均质量分 87
C/C++知识分享
写Bug那些事
开始学习!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++智能指针之weak_ptr
在C++中,动态内存的申请和释放是通过运算符:new 和 delete 进行管理的。其中 new 负责申请内存,delete负责释放内存。动态内存的使用很容易出现问题,这主要在于你需要保证在正确的时间释放内存,这是比较困难的,如果你忘记释放内存,就会造成内存泄露;有时在还有指针引用内存的情况下我们就释放了它,在这种情况下就会产生引用非法内存的指针。原创 2022-11-27 16:32:32 · 1554 阅读 · 0 评论 -
C++智能指针之unique_ptr
在C++中,动态内存的申请和释放是通过运算符:new 和 delete 进行管理的。其中 new 负责申请内存,delete负责释放内存。动态内存的使用很容易出现问题,这主要在于你需要保证在正确的时间释放内存,这是比较困难的,如果你忘记释放内存,就会造成内存泄露;有时在还有指针引用内存的情况下我们就释放了它,在这种情况下就会产生引用非法内存的指针。原创 2022-11-26 23:44:27 · 8446 阅读 · 1 评论 -
C++智能指针之shared_ptr
在C++中,动态内存的申请和释放是通过运算符:new 和 delete 进行管理的。其中 new 负责申请内存,delete负责释放内存。动态内存的使用很容易出现问题,这主要在于你需要保证在正确的时间释放内存,这是比较困难的,如果你忘记释放内存,就会造成内存泄露;有时在还有指针引用内存的情况下我们就释放了它,在这种情况下就会产生引用非法内存的指针。原创 2022-11-26 22:17:35 · 7713 阅读 · 0 评论 -
C语言入门这一篇就够了-肝(中)
C语言-万字长文总结前言一、循环1.1 whie循环二、C语言-程序结构2.1 程序结构2.2 无头文件-错误解析三、C语言-基本语法3.1 关键字3.2 标识符3.3 注释四、C语言-数据类型4.1 整数类型4.2 浮点类型4.3 void 类型五、C语言-变量5.1 变量类型5.2 变量的定义、声明5.3 Lvalues和Rvalues5.4 全局变量和局部变量六、常量6.1 整数常量6.1.1 进制说明6.2 浮点常量6.2.1 浮点型常数6.3 字符常量6.4 字符串常量6.5 常量定义与声明6.5原创 2022-11-09 22:51:24 · 2265 阅读 · 0 评论 -
C++ const关键字
指针和引用都能够定义为constexpr,但它们的初始值却受到严格限制,一个constexpr指针的初始值必须为nullptr或0或者存储在某个固定地址中的对象,允许函数定义一类有效范围超出函数本身的变量,这类变量和定义在函数体之外的变量一样有固定地址。指针是对象,引用则不是,因此和其它对象类型一样,允许将指针本身定义为常量,常量指针必须初始化,一旦初始化,则它的值(这指的是存放指针的地址)就不能改变了。顶层const指的是指针变量本身是一个常量,底层const指的是指针所指的对象是一个常量。原创 2022-11-03 19:45:37 · 727 阅读 · 0 评论 -
C++ inline函数
内联函数的作用主要是用来提高程序执行效率。如果函数是内联的,编译器在编译时,会把内联函数的实现替换到每个调用内联函数的地方,其和宏定义作类似,但宏函数不会进行类型检查。通常在进行函数调用在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参;再将函数的返回地址(此地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中;最后跳转到函数内部执行;内联函数主要是解决函数的频繁调用,大量内存消耗的问题。原创 2022-11-03 00:26:57 · 506 阅读 · 0 评论 -
C++后台开发面试分享(推荐)
知识分享原创 2022-08-18 21:34:45 · 1452 阅读 · 3 评论 -
进程间通信1(面试常考)
进程间通信(面试常考)一、进程间通信1.1 什么是进程间通信1.2 进程间通信的方式二、管道-pipe2.1 管道的概念2.2 管道的原理2.3 管道的局限性2.4 创建管道-pipe函数2.5 父子进程使用管道通信2.6 使用管道进行进程通信-练习2.7 管道的读写行为2.8 如何设置管道为非阻塞2.9 如何查看管道缓冲区大小三、命名管道-FIFO3.1 创建管道3.2 使用FIFO完成两个进程通信四、内存映射区4.1 存储映射区介绍4.2 mmap函数4.3 munmap函数4.4 mmap注意事项4原创 2022-03-28 14:14:06 · 1003 阅读 · 0 评论 -
进程控制相关
进程控制一、进程相关概念1.1 程序和进程1.2 并行和并发1.3 PCB-进程控制块1.4 进程状态(面试考)二、创建进程2.1 fork函数总结一、进程相关概念1.1 程序和进程程序,是指编译好的二进制文件,在磁盘上,占用磁盘空间, 是一个静态的概念。进程,一个启动的程序, 进程占用的是系统资源,如:物理内存,CPU,终端等,是一个动态的概念。1.2 并行和并发并发,在一个时间段内, 是在同一个cpu上, 同时运行多个程序。如:若将CPU的1S的时间分成1000个时间片,原创 2022-03-27 20:52:22 · 265 阅读 · 0 评论 -
不可不知的gcc编译
gcc编译器一、gcc的工作流程二、gcc 常用参数三、gcc编译测试总结一、gcc的工作流程 gcc编译器将c源文件到生成一个可执行程序,中间一共经历了四个步骤: 四个步骤并不是gcc独立完成的,而是在内部调用了其他工具,从而完成了整个工作流程, 其中编译最耗时, 因为要逐行检查语法。下面以 test.c 为例介绍 gcc 的四个步骤:gcc -E test.c -o test.igcc -S test.i -o test.sgcc -c test.s -o test.ogcc原创 2022-03-20 09:04:44 · 1054 阅读 · 0 评论 -
文件输入输出及相关函数
文件IO前言一、C库IO函数的工作流程3.3 虚拟地址空间3.4 pcb和文件描述符表文件描述符open/closeopen函数close函数read/writeread函数writelseekperror和errno阻塞和非阻塞:前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、C库IO函数的工作流程c语言操作文件相关问题:使用fopen函数打开一个文件, 返回一个FI原创 2022-03-25 16:20:12 · 469 阅读 · 0 评论 -
文件操作相关函数
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文件操作相关函数一、文件操作相关函数1.1 stat/lstat函数目录操作相关函数总结一、文件操作相关函数1.1 stat/lstat函数函数描述: 获取文件属性函数原型: int stat(const char *pathname, struct stat *buf);int lstat(const char *pathname, struct stat *buf);函数返回值:成功返回 0失败返回 -1str.原创 2022-03-23 16:24:01 · 1185 阅读 · 0 评论 -
来学gdb调试吧
gdb调试一、gdb介绍二、生成调试信息三、启动gdb四、显示源代码五、设置断点六、调试代码七、查看变量的值总结一、gdb介绍 GDB(GNU Debugger)是GCC的调试工具。其功能强大, 现描述如下: GDB主要帮忙你完成下面四个方面的功能:启动程序, 可以按照你的自定义的要求随心所欲的运行程序。可让被调试的程序在你所指定的断点处停住。(断点可以是条件表达式)当程序被停住时, 可以检查此时你的程序中所发生的事。动态的改变你程序的执行环境。二、生成调试信息原创 2022-03-23 10:51:08 · 478 阅读 · 0 评论 -
C语言入门这一篇就够了!!!-万字长文(前半部分)
C语言-万字长文总结入门靠这一篇就够了,建议收藏一波!!!这是一个很详细的C语言入门教程!!!原创 2021-08-03 13:51:42 · 5947 阅读 · 73 评论 -
17个C语言字符串处理函数
17个C语言字符串处理函数原创 2021-12-28 23:46:27 · 10423 阅读 · 2 评论 -
数据结构-第二章(4)-顺序表案例(含代码)
数据结构⚡️数据结构-第一章⚡️抽象数据类型案例⚡️数据结构-第二章(1)-线性结构⚡️数据结构-第二章(2)-线性表的顺序表示和实现数据结构-第二章(3)-顺序表案例(含代码)数据结构一、线性表的结总结一、线性表的结线性表的小结查找、插入、删除的平均算法复杂度为O(n)空间复杂度显然顺序表操作没有占用辅助空间算法的空间复杂度O(1)线性表的优缺点优点存储密度大(结点本身所占用的空间/结点结构所占存储量=1)无需为表示表中元素之间的逻辑关系,而增加额外的存储空间可以随机存取表原创 2021-11-23 14:18:45 · 2293 阅读 · 0 评论 -
数据结构-第二章(3)-顺序表(含代码)
数据结构数据结构-第一章抽象数据类型案例数据结构-第二章(1)-线性结构数据结构-第二章(2)-线性表的顺序表示和实现数据结构一、前言二、顺序表的基本操作总结一、前言二、顺序表的基本操作顺序表示意图第一步:创建顺序表结构类型静态分配动态分配第二步:线性表初始化C++不支持默认的int,所以在初始化赋值时,使其返回类型为空。//1、顺序表的初始化赋值void InitList(SqList &L){ int原创 2021-11-22 22:16:45 · 1310 阅读 · 2 评论 -
C++通讯录管理系统
C++通讯录管理系统前言一、系统需求二、菜单功能三、退出功能四、添加联系人4.1 设计联系人结构体4.2 设计通讯录结构体4.3 main函数中创建通讯录4.4 封装添加联系人函数4.5 测试添加联系人功能五、显示联系人5.1 封装显示联系人函数5.2 测试显示联系人功能六、删除联系人6.1 封装检测联系人是否存在6.2 封装删除联系人函数6.3 测试删除联系人功能七、查找联系人7.1 封装查找联系人函数7.2 测试查找指定联系人八、修改联系人8.1 封装修改联系人函数8.2 测试修改联系人功能九、清空联原创 2021-11-07 22:03:45 · 1462 阅读 · 0 评论 -
C++ 面向对象-类和对象
C++ 类和对象前言一、类和结构体二、使用步骤1.引入库2.读入数据总结前言类和对象是C向C++转变的一个关键点,我写这一篇博文,是为了让我能够吃的深一点,这也是我过C++的第2遍,搞通了之前没弄懂得几个点。以此记录。一、类和结构体说到类不得不提起的就是结构体,我们可以思考几个问题:1.结构体能继承吗?2.结构体能够包括成员函数吗?3.结构体能够实现多态吗?众所周知:能,这些结构体都能做。那么,问题来了,所以???大人,为什么还需要类?如果有人这样问我,我会回答:万事万物的存在都是原创 2021-10-24 23:07:10 · 727 阅读 · 2 评论
分享