
C/C++
文章平均质量分 96
推荐书籍:《C Primer Plus》、《C和指针》、《C专家编程》
推荐书籍(有先后顺序):《C++ Primer》、《Effective C++》、《C++ 标准程序库》、《STL源码剖析》《深度探索C++对象模型》
Emiiya
这个作者很懒,什么都没留下…
展开
-
【总结】C/C++关键字相关总结--------explicit,mutable,volatile,const
volatile1、什么是volatile这是在MSDN中对关键字“volatile”的说明:The volatile keyword is a type qualifier used to declare that an object can be modified in the program by something other than statements, such as...原创 2020-04-10 14:33:22 · 273 阅读 · 0 评论 -
【总结】知识点巩固--------sizeof和strlen
https://blog.csdn.net/ly_6699/article/details/89482591strlen和sizeof 区别一、sizeof 运算符:计算所占的字节大小sizeof()是运算符,其值在编译时 就已经计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能...转载 2020-03-23 16:31:59 · 281 阅读 · 1 评论 -
【总结】C++ 多态详解--------静态动态\虚函数与虚函数表(内存布局)
https://blog.csdn.net/lixungogogo/article/details/51138493(大牛总结)可参考内存布局:https://blog.csdn.net/woalss/article/details/79060077静态和动态1.多态体现2.静态动态联编那么静态联编和动态联编分别是什么呢联编的作用是:程序调用函数,编译器决定使用哪个可执行代...转载 2020-03-13 16:04:10 · 416 阅读 · 0 评论 -
【总结】多态与继承-----要点
什么是多态答:多态是面向对象的重要特性之一,它是一种行为的封装,是同一种事物所表现出的多种形态,简单地说是”一个接口多种实现“多态的作用答:多态技术允许将父类设置成和他的一个或更多的子对象相等。多态的分类答:有两种类型的多态性:编译时的多态性。编译时的多态性是通过重载来实现的。运行时的多态性。运行时的多态性是通过虚成员实现的。在C++中如何实现多态答:多态有动态多态,静态多态...转载 2020-03-13 15:30:46 · 370 阅读 · 0 评论 -
【总结】知识点巩固-------c和c++打印指针值和地址
我们知道在c++中指针变量和指针所指向的内存是两个完全不同的概念,指针变量里边存放的是一个地址,那么我们怎么输出指针变量的值,以及怎么输入指针变量本身的地址呢?char *p="abcde";cout << hex << &p <<endl;//此处是输入指针变量的地址cout << hex << (void *)p<...转载 2020-02-05 12:19:08 · 4327 阅读 · 0 评论 -
【总结】知识点巩固STL源码学习-------Vector,List
REF:https://blog.csdn.net/woalss/article/details/78917564准模板库就是类与函数模板的大集合。STL共有6种组件:容器,容器适配器,迭代器,算法,函数对象和函数适配器。本文主要介绍前两点容器:序列容器:关联容器:容器适配器:...转载 2020-01-19 11:28:23 · 387 阅读 · 1 评论 -
【总结】知识点巩固-------指针和地址的构造和析构
指针和地址是强相关的,但是两个概念,指针可以为nullptr或指向特定的地址构造:只初始化(没有new或malloc,没有指向初始地址)时,为nullptr.new或malloc后,就已经分配了内存,地址赋给了指针析构:1.指针指向的地址可以被改变,但对于以前指向的地址如果是new或malloc出来的,需要delete或者free例:删除结点时,需要先将需要删除的结点暂存,...转载 2020-01-15 15:07:04 · 235 阅读 · 0 评论 -
【总结】知识点巩固-------指针引用传递(附c/c++区别)
Ref:https://blog.csdn.net/wang386476890/article/details/82907259(指针)指针指针和变量一样,也是有地址的,只不过变量的值被解释成一个值,而指针的值被解释成一个地址。函数参数传递与按引用传递不同的是,函数内定义了一个局部的指针变量,消耗了内存空间,并且按地址传递,还可以对地址进行加减,指向另一个变量;1.传递指针...转载 2020-01-08 16:49:52 · 145 阅读 · 0 评论 -
【总结】知识点巩固-------struct和class
C/C++ struct 结构体定义 用法详解在C语言中,定义一个结构体类型要用typedef :typedef struct point { int x; int y;}Point;在声明变量的时候就可以:Point p1;如果没有typedef, 如:struct point { int x; int y;};在声...原创 2020-01-07 15:53:02 · 403 阅读 · 0 评论 -
【总结】【C++11】禁止拷贝新方法与相关知识点
原理:依据:https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-copy-virtualC.67: A polymorphic class should suppress copyingReasonA polymorphic class is a class that defines or inherits...转载 2019-12-20 11:15:12 · 1622 阅读 · 0 评论 -
【总结】【C++11】三五原则及移动
简介三五法则规定了什么时候需要拷贝构造函数、拷贝赋值函数、析构函数等1. 需要析构函数的类也需要拷贝构造函数和拷贝赋值函数。通常,若一个类需要析构函数,则代表其合成的析构函数不足以释放类所拥有的资源,其中最典型的就是指针成员(析构时需要手动去释放指针指向的内存)。所以,若存在自定义(且正确)的析构函数,但使用合成的拷贝构造函数,那么拷贝过去的也只是指针,此时两个对象的指针变量...转载 2019-12-20 11:04:22 · 730 阅读 · 0 评论 -
【C++】Core Guideline总结
REF:资料:https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-consume其他人的笔记(很多有用的笔记):https://www.jianshu.com/p/e4f4a34da6ba知识储备:https://blog.csdn.net/kongkongkkk/article/details/7...转载 2019-12-19 10:49:40 · 2771 阅读 · 0 评论 -
【总结】【C++11】Move&forward&右值
预备知识:https://blog.csdn.net/lisemi/article/details/100775218下文先从C++11引入的几个规则,如引用折叠、右值引用的特殊类型推断规则、static_cast的扩展功能说起,然后通过例子解析std::move和std::forward的推导解析过程,说明std::move和std::forward本质就是一个转换函数,std::mov...转载 2019-12-17 17:25:31 · 371 阅读 · 0 评论 -
【总结】【C++11】与legacy C对比
Index Comment Legacy C/C++ C++ 1 String handling const char* strcmp, strdup, strcpy … std::string 2 ...原创 2019-12-17 10:47:21 · 875 阅读 · 0 评论 -
【总结】动态数组小结
比较好介绍动态和静态数组的文章:https://blog.csdn.net/u013921430/article/details/79514972https://blog.csdn.net/u013921430/article/details/79601429c++创建动态数组方法的文章(new和vector):https://blog.csdn.net/u013921430/ar...原创 2019-12-16 16:10:05 · 293 阅读 · 0 评论 -
【总结】STL 坑汇总
1.vector的求长度size()-1例1:for (int i = 0; i <v.size()-1; ++i) { 代码段A; }例2:vector vec = {};int i = vec.size() - 1;cout << i << endl;cout << vec.size() - 1;...原创 2019-12-16 10:51:32 · 765 阅读 · 0 评论 -
【总结】知识点巩固-----------模板基础 template
原文出处:https://blog.csdn.net/baishuo8/article/details/84440883Backto C/C++ Index// definitiontemplate<class T> T GetMax(const T& a, const T& b){ return (a > b? a:b);}/...转载 2019-09-02 13:53:43 · 347 阅读 · 0 评论 -
【总结】static和extern和const以及定义与声明
一.C语言中的static关键字 在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。 (1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意...原创 2018-01-15 00:23:54 · 1035 阅读 · 0 评论 -
MySQL脏读、虚读、幻读与同步异步
事务的特性:原子性:指处于同一个事务中的多条语句是不可分割的。一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额之和为2k,转账之后也应该是2K。隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰持久性:事务一旦提交,就应该被永久保存起来。事务隔离性问题: 如果不考虑事务的隔离性,会出现以下问题:脏读:指一个线转载 2018-01-03 22:39:33 · 808 阅读 · 0 评论 -
c++ list, vector, map, set 区别与用法比较
List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要转载 2017-12-27 23:39:00 · 212 阅读 · 0 评论 -
【总结】【C++11】智能指针
C++11中智能指针的原理、使用、实现目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造...转载 2017-12-20 23:45:57 · 319 阅读 · 0 评论 -
程序员面试宝典随笔记(一)----define和const
#define RADIUS 100;const float RADIUS = 100;(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行转载 2017-12-13 22:22:34 · 252 阅读 · 0 评论 -
程序员面试宝典随笔记(一)-----malloc和new分析
new和malloc的区别转载 2013年11月19日 10:24:30标签:c++ /内存分配334481. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_b转载 2017-12-13 21:47:46 · 308 阅读 · 0 评论 -
程序员面试宝典随笔记(一)---构造拷贝构造和赋值函数的细则
引申来由:如果你只是声明一个空类,不做任何事情的话,编译器会自动为你生成一个默认构造函数、一个拷贝默认构造函数、一个默认拷贝赋值操作符和一个默认析构函数(似乎还有一个this指针)。这些函数只有在第一次被调用时,才会别编译器创建。所有这些函数都是inline和public的。定义一个空的C++类,例如class Empty{}123一个空的class在C++编译转载 2017-12-11 22:04:15 · 270 阅读 · 0 评论 -
C++操作符的优先级 及其记忆方法
优先级操作符描述例子结合性1()[]->.::++--调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符(a + b) / 4;array[4] = 2;ptr->age = 34转载 2017-12-07 22:59:02 · 132 阅读 · 0 评论 -
C,C++ 指针数组与数组指针
//注意指针数组和数组指针分别是如何指向二维数组的#include main(){ static int m[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};/* 定义二维数组m并初始化*/ int (*p)[4];//数组指针 p是指针,指向一维数组,每个一维数组有4个int元素 int i,j; int *q[3];/转载 2017-12-06 22:24:09 · 215 阅读 · 0 评论 -
程序员面试宝典随笔记(一)指针和++相关
1.(*p)++和*(p++)和*p++的区别:总结:前缀递增递减和*优先级相同,从右到左;后缀递增递减比前缀优先级高,从左到右。比如12int arr[5] = { 1,3,5,7,9 };int *p = arr;*++p:p先自+,然后*p,最终为3++*p:先*p原创 2017-12-04 22:05:41 · 251 阅读 · 0 评论