- 博客(5)
- 资源 (8)
- 收藏
- 关注
原创 内存分配不成功导致内存泄漏的问题
内存泄漏是在写程序中容易发生的问题,所以解决内存泄漏问题至关重要,在这里我推荐一个内存泄漏的自动化检测软件:visual leak detector,非常好用的一个软件#include void GetMemory(char *p, int num){p = (char *)malloc(sizeof(char) * num);}int main(){ch
2015-08-25 10:29:23 869
原创 引用和指针的差别?
1:非空区别,在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。所以如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时应该将这个变量声明为指针,这样就可以给这个变量赋值;相反如果这个变量肯定指向一个对象,并且这个对象不允许为空,那么就应该声明为引用,引用的效率要高于指针效率;2:合法性区别,我们在写代码的时候,对于指针通常要进行非空验证,if
2015-08-25 10:00:04 821
原创 a、b交换的几种方法(不采用中间变量)
第一种采用加法:a = a + b;b = a - b;a = a - b;采用加法的一个缺点就是当a, b值都很大的时候容易产生越界因此就有了更安全的方法第二种采用异或a = a^b;a = a^b;a = a^b;
2015-08-24 15:35:08 775
原创 如何判断一个数的二进制有多少个1
下面给出计算代码:#include using namespace std;int foo(int x){ int count = 0; while(x) { count++; x = x&(x - 1); } return count;}int main(){ cout << foo(500) << endl;}举一反三 如何判断一个数是不
2015-08-24 15:24:50 3242
原创 (x&y)+((x^y)>>1)
程序员面试宝典中(x&y)+((x^y)>>1)的结果分析:首先先看看数据的三种对应情况1) 0 与 0对应2) 0 与 1对应3) 1 与 1对应所以得到1、是x,y对应位都是1,既1&1 = 1,,也就是(x+y)/2;2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算这些位的和,>>1相当于除2;3、是x,y中对应
2015-08-24 15:13:17 629
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人