首先: delete []p;是用来删除对象数组的,特别是你声明的是对象数组!!! 如果new中用了[],delete一定要用[]:在new中没有使用,在delete中一定不要使用. 其次: 当你使用new的时候,首先内存被分配 ,然后针对此块内存,会有相应的构造函数被调用. delete使用的时候,首先针对此块内存会有析构函数被调用,然后释放内存. 二: 一般以传引用代替传值. 对于内置类型,我们一般以传值代替传引用,因为传值会速度快些,传引用本质在c++底层是传递的指针.(内置类型譬如int