new操作符
通过new来动态分配存储空间
语法格式:
指针变量 = new 类型
"类型"是任意类型,但不允许是函数类型,可以是:基本数据类型、数组类型、类类型、函数指针类型等;
例如:
int *p1=new int(0);//动态分配一个整数单元,并设置初始值
cout<<*p<<endl;
char *p2=new char;//动态分配一个字符型单元
申请动态数组
int *p3=new int[3];//动态分配长度为3的整型数组
由new分配的堆空间与普通变量不同,它没有名字,只能通过指针对堆空间进行间址方式访问
delete 操作符
动态释放已分配的空间
语法格式:
delete 指针变量
例如:
delete p1;//释放p1所指的存储空间
delete p2;//释放p2所指的存储空间
释放new关键字创建的数组
delete []p3;
delete释放了指针变量所指的空间,但是并没有删除指针变量本身的存储单元和清除指针变量原来的值,p1、p2、p4这些指针变量的地址值虽然还存在,但已经没有意义
在delete操作之后,对指针变量赋为NULL,清楚其无意义的地址值