
C++相关
nncca
这个作者很懒,什么都没留下…
展开
-
VC6.0中backspace键和tab键失灵
刚开始以为是键盘失灵,热插拔了几下键盘接口,没能解决问题。后发现在网页WPS下编辑使用tab和backspace键无问题。于是问题定位在VC6.0编辑器的设置上。 工具——>选项——>兼容性 中 第一个选项:在行首禁用退格 前 把√ 去掉即可。原创 2013-11-20 15:51:27 · 1496 阅读 · 0 评论 -
c++中new 的使用
int *p; int **pp;(1)p = new int(10), p= new int[10]的区别: 前者指分配4字节存放默认整数10后者指分配40字节存放整数,在栈内存中存放了一个指向一块堆内存[10]的指针(p);后者等价于 p=(int *)malloc(10*sizeof(int));都存放在堆中,编译器不释放,一般由 程序员释放,new与delete对应原创 2013-11-28 11:01:38 · 474 阅读 · 0 评论 -
&a+1 的困惑
请先看以下程序:Q:若 int a[5];则 &a+1 的含义是甚么?A:&a+1 不是表示a的地址(设为Ox0010)加1,变为0x0011. 由于a为包括5个int类型的数组,则"&a+1"中的"+1"表示为相当于"1"个a大小的空间(或成为偏移),此时&a+1 表示 a[5].Q: 若 int* ptr = (int*) (&a+1);则 ptr转载 2013-12-09 10:33:26 · 576 阅读 · 0 评论 -
指针数组和数组指针
1:char a[5]='huge'char *b=acout结果为:hugeb 字符指针,cout 会输出该指针指向的字符串,而不是输出单个字符2:char q[ ]="abc"如果是sizeof(q)计算数组的长度为4。如果是strlen(q)为字符串长度为3。如果你把换为q[10],则sizeof(q)为10,strlen仍为3。3:int *q[ ]: q是数组原创 2013-12-05 11:03:51 · 497 阅读 · 0 评论 -
关于%d %3d %-3d %03d 等的区别和列宽的设置方法
设置列宽有多种方法,其中两种为: 1:%nd:n代表的是列宽长度。 (1)%-nd - 代表的是左对齐 (2)%0nd 0(数字零)代表的是不足n位长度的左补齐0.2:cout.width(n),设置列宽长度为n.原创 2013-12-05 14:46:25 · 4836 阅读 · 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];/转载 2013-12-05 11:04:35 · 471 阅读 · 0 评论 -
小认识句柄
句柄,是整个windows编程的基础。句柄是指使用的一个唯一的四字节长的数值,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控件,位图,GDI对象等等。在程序设计中,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。在WINDOWS编程中会用到大量的句柄,比如:HINSTANCE(实例句柄),HBITMAP原创 2013-12-23 16:36:41 · 625 阅读 · 0 评论 -
delete [] 与delete
delete [] 与 new[] 对应。而delete 和 new对应。对于简单的数据类型而言,delete和delete[]都只是释放内存,没有什么区别。 delete和delete[]的差别,在数组元素是一个对象的时候,就可以体现出来。delete一般情况下,只会永远开始地址那个对象的析构函数,而delete[]可以调用数组中所有对象的析构函数。原创 2014-03-14 15:23:55 · 599 阅读 · 0 评论 -
n&(n-1)的功能
基本功能:将n的二进制表示中的最低位为1的变为0. 延伸功能:1:求某一个数的二进制表示中的1的个数:int count=0;while(n){count++;n=n&(n-1);}2::判断一个数是否是2的次幂if(n>0&&(n&(n-1)==0)原创 2014-03-14 16:59:24 · 611 阅读 · 0 评论