#include <iostream>
using namespace std;
{
int* p = new int;
*p = 50;
cout << *p << endl;
int* q = new int(100);
cout << *q << endl;
int* P = new int[10];
for (int i = 0; i < 10; i++)
cin >> P[i];
int j = 0;
while (j < 10)
{
cout << "P[j]=" << P[j] << " ";
j++;
}
cout << "p:" << p << " " << "q:" << q << " " << "P:" << P << " " << endl;
delete p;
delete q;
delete[] P;
cout << "p:" << p << " " << "q:" << q << " " << "P:" << P << " " << endl;
}
一:正确结果
delete p;
delete q;
delete[] P;
cout << "p:" << p << " " << "q:" << q << " " << "P:" << P << " " << endl;
***可以看到结果,delete运算符逐个撤销内存,这样是成功撤销***
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820162142484.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTk1ODQxMA==,size_16,color_FFFFFF,t_70#pic_center)
二:尝试一次撤销多个内存
delete p, q;
cout << "p:" << p << " " << "q:" << q << " " << "P:" << P << " " << endl;
***可以看到结果,delete运算符后面没括号(),只能撤销掉第一个用new运算符开辟的内存***
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820162157346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTk1ODQxMA==,size_16,color_FFFFFF,t_70#pic_center)
三:尝试一次撤销多个内存且加括号
delete( p, q);
cout << "p:" << p << " " << "q:" << q << " " << "P:" << P << " " << endl;
可以看到结果,delete运算符后面有括号(),只能撤销掉括号里最末一个用new运算符开辟的内存
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820162209749.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTk1ODQxMA==,size_16,color_FFFFFF,t_70#pic_center)
四:尝试同时撤销带数组空间的指针与普通指
delete []P, p, q;//当delete运算符要操作带数组空间的指针的时候,[] P只能放第一个,放其他地方编译无法通过,且不能加括号
cout << "p:" << p << " " << "q:" << q << " " << "P:" << P << " " << endl;
可以看到结果,delete运算符只对第一个[]P进行了内存撤销
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820162242312.png#pic_center)