C++
npu_wy
这个作者很懒,什么都没留下…
展开
-
reference和const reference的初始化
引用是作为一个变量的另一个名字而存在的,请记住,引用仅仅是一个名字,当你看到引用时,你应该反应到,它是什么东西的另一个名字。当然,不可以把一个非左值用来应用的初始化,除过这样一个例外:当一个引用是const引用时,它可以用不同类型的对象初始化(只要能从一种类型转换到另一种类型即可),也可以是不可寻址的值,如文字常量,编译器为了实现引用,必须生成一个临时对象,引用实际上指向该对象,但用户不能访问它。原创 2013-11-15 22:38:18 · 679 阅读 · 0 评论 -
异或交换数组元素的隐患
写了一个交换int值的函数:原创 2014-07-31 18:07:12 · 724 阅读 · 0 评论 -
i++,++i,i+=1,i=i+1在gcc下汇编
~$ gcc -O0 -S tmp.c原创 2014-07-25 16:34:24 · 604 阅读 · 0 评论 -
C++堆上申请二维数组
假设要申请的是double型大小m*n数组有如下方法方法一:优点:申请的空间是连续的 缺点:较难理解1 double (*d)[n] = new double[m][n]方法二:优点:容易理解 缺点:申请的空间不能连续且需要多个指针才能管理double *d[m];for (int i=0; i) d[i] = new double[n];转载 2014-05-25 17:11:55 · 1114 阅读 · 0 评论 -
带成员函数指针的成员函数
class A{}原创 2014-04-12 14:56:23 · 509 阅读 · 0 评论 -
char *s1 = "***"和char s2[]="***"的区别
char *s1="hello"这个是一个字符串常量,你可以像一个字符数组一样使用它,但是你不能更改这个字符串的值比如 s1[2]='e'这样不行,char s2[]="hello";是一个字符串变量,可以被修改。不过,这两者再作函数的形参的时候是完全等价的。void function(char *pstr);void function(char pstr[]);可以相当绝对的说这两种转载 2014-03-25 22:06:20 · 973 阅读 · 0 评论 -
fatal error C1083: Cannot open precompiled header file: 'Debug/***.pch': No such file or directory
使用VC2010时,把原工程的预编译文件stdafx.h移除,又重新加载stdafx.h后,出现错误:fatal error C1083: Cannot open precompiled header file: 'Debug/***.pch': No such file or directory解决这个问题的方法:工程 -> 属性 -> C/C++ -> precompi转载 2014-04-02 13:53:23 · 1155 阅读 · 0 评论 -
编辑文章 - 博客频道 - CSDN.NET
使用VC2010时,把原工程的预编译文件stdafx.h移除,又重新加载stdafx.h后,出现错误:fatal error C1083: Cannot open precompiled header file: 'Debug/***.pch': No such file or directory解决这个问题的方法:工程 -> 属性 -> C/C++ -> precompi转载 2014-03-04 10:13:00 · 746 阅读 · 0 评论 -
x=x+1,x+=1,x++效率的两种说法
有次翻关于招聘的书,上面有道题:x=x+1,x+=1,x++,哪个效率最高?我上网查后发现,有以下2种说法: x=x+1最低,因为它的执行过程如下: 1. 读取右x的地址; 2. x+1; 3. 读取左x的地址; 4. 将右值传给左边的x(编译器并不认为左右x的地址相同). x+=1其次,它的执行过程如下: 1. 读取右x的地址; 2. x=1;原创 2013-12-20 10:47:11 · 2121 阅读 · 0 评论 -
内存池的内存地址对齐和长度按照2的幂取整
#define ngx_align_ptr(p, a) \ (u_char *) (((uintptr_t) (p) + ((uintptr_t) a - 1)) & ~((uintptr_t) a - 1))原创 2014-08-06 22:35:10 · 1634 阅读 · 0 评论