![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
WTHunt
厚积薄发
展开
-
C++中左移右移为负数的情况
C语言中,移位操作是经常用到的到时有个现象是i<<-1和i<<31的结果一样1 “-1”表示成补码是1111 ….11 1111 ,31是 0000 …0001 1111,,他们的后五位是一样的。Interger的移位运算只注意后5位Note also that rotation by any multiple of 32 is a no-op, so all but the last five bits of the rotation distance can be ig原创 2021-09-07 10:14:24 · 2060 阅读 · 0 评论 -
详解C++11智能指针
详解C++11智能指针前言C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。C++11智能指针介绍智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏。C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用。该引用计数的转载 2020-08-18 11:06:26 · 248 阅读 · 0 评论 -
C++ this指针
this指针始终指向对象本身。1.this指针的用处:一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员...原创 2019-04-21 21:10:51 · 216 阅读 · 0 评论 -
递归调用流程详解
分析代码段:#include<stdio.h>void move(int x, int y){ printf("%c--->%c\n", x, y);}void hanoi(int n, char one, char two, char three){ if (n == 1) move(one, three); else { hanoi(n - ...转载 2019-04-09 18:07:31 · 8930 阅读 · 0 评论 -
&|(与或移位等)的工程运用
引言:善用&|<<操作,告别低效代码利用逻辑运算符可以替代很多的乘法除余等操作,这种对二进制直接操作的指令简洁高效,善用逻辑运算符对嵌入式开发,或是对性能要求高的场景是非常必要的,因此这里总结一部分常用的逻辑运算操作等价列表1、乘法x*k、除法x/k(k满足2^n):x<<n、x>>n2、取余x%k(k满足2^n):x&(2...原创 2019-10-29 11:46:11 · 244 阅读 · 0 评论 -
C++一级与二级指针基础详解
指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的指针变量,它们的关系如下图所示:将这种关系转换为C语言代码:int...转载 2019-10-07 20:08:05 · 717 阅读 · 1 评论