欢迎关注
C++中new与malloc区别 C++中new与malloc区别
申请的内存所在位置new操作符从自由存储区上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操
2024-09-08
C++ 流缓冲区 C++ 流缓冲区
C++ 的 I/O 是通过标准库中输入输出流来实现的。标准库在 iostream头文件当中,预定义了六个流对象,他们是: • istream <- std::cin/std::wcin,对应标准输入的输入流; • ostream &l
2024-09-04
C++命令行参数 C++命令行参数
前言我们在Linux用到的命令常常支持很多参数,那么如何写一个程序,也像Linux命令一样支持很多参数呢?有什么什么优雅的处理方法? 命令行参数在介绍如何处理命令行参数之前,简单介绍一下命令行参数,已经了解的朋友可以跳过此小节。我们用一段代
2024-09-03
std::ref std::ref
C++本身有引用&,为什么C++11又引入了std::ref?主要是考虑函数式编程如std::bind在使用时,是对参数直接拷贝,而不是引用。如下例子: void f(int& n1, int& n2, const
2024-09-03
friend friend
原则上, 类的私有(private)和受保护(protected)成员不能从声明它们的同一类外部访问。但是, 此规则不适用于友元 “friends”。以friend关键字修饰的函数或类称为友元函数或友元类。 友元函数友元函数是可以直接访问类
2024-09-03
拷贝构造函数与赋值函数 拷贝构造函数与赋值函数
在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数。初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容。这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别。 调用了哪个函数?上述两种函数的使用和C++之中类的
2024-09-03
智能指针 智能指针
上周五排查了一个由于XXX模块操作疏忽导致栈越界引发的我的模块的智能指针Crash问题,因此稍微研究了一下,以作参考:shared_ptr共享被管理对象,同一时刻可以有多个shared_ptr拥有对象的所有权,当最后一个shared_ptr
2024-09-02
右值引用 右值引用
概述右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的: int i = 0; int& j = i;这里的int&是对左值进行绑定,但是int&a
2024-09-02
sizeof、strlen、数组、字符串 sizeof、strlen、数组、字符串
对于初学者来说,sizeof,strlen,数组,字符串整在一起是痛苦的,它总能在某些莫名其妙的时候整一个措手不及,本文看看它们在一起能挖什么坑。 例子在说明这些问题之前,先看一段代码,看看你是否都理解了。注:以下代码结果为编译为64位程序
2024-08-27
二维数组 二维数组
二维数组我们知道 C 语言没有真正意义上的二维数组。二维数组的实现,只是简单地通过“线性扩展”的方式进行。如图所示, int b[4][5];就是定义 4 个元素,每个元素都是一个包含 5 个整型变量的一维数组。它在内存中依然是以线性的形式
2024-08-26
数组 数组
前言在C语言中,数组和指针似乎总是“暧昧不清”,有时候很容易把它们混淆。本文就来理一理数组和指针之间到底有哪些异同。 数组回顾在分析之前,我们不妨回顾一下数组的知识。数组是可以存储一个固定大小的相同类型元素的顺序集合。为了便于我们说明,假设
2024-08-14
语言链接 语言链接
提供以不同程序语言编写的模块间的连接。 extern 字符串字面量 { 声明序列(可选) } (1) extern 字符串字面量 声明 (2)1) 将语言说明字符串字面量应用到声明于声明序列中的所有函数类型,具有外部连接的函
2024-08-14
1 / 3