new运算符用于申请并分配内存空间,提供指向该空间的指针(内存地址)
delete运算符用于释放内存,仅仅可用于new运算符申请的内存区域
new double;//申请一个8字节的内存空间
int *p = new int ;
*p = 10;
delete p;
对数组:
int *p = new int[5]; //=申请一个二十个字节的内存空间
* p = 1 ; //数组首位
* (p+1)=2; //数组第二位
delete[] p;
另外:不可以删除静态内存管理的变量如:
int num = 10;
delete #//是非法的
静态内存是程序自行删除
同时有一种等效的易混淆写法:
int *p = new int [5];
p [0] = 10; //等同于 *p =10;
p[1] =10; 等同于 *(p+1) =10;
delete[] p ;
这种写法把指针看作数组变量,