课程
/后端开发
/C++
/C++远征之离港篇
在运行完delete p之后在输出*p的值就已经是随机数了,但是输出指向的地址又是正常的和最初保持不变.那么
为什么用是的delete p 而不是delete *p,删除的是指向的值又不是指向的地址
2018-05-25
源自:C++远征之离港篇 5-2
正在回答
delete应该是删除p地址的指向,本来p指向的是5,delete之后,p指向的不再是5了。计算机是地址寻址的。
我去看了一下源码,delete方法的参数是*p,也就是说delete p传入的是p对应的指针,其实是指针传递,谢谢了
岁月长衣裳薄
叶zero 提问者 回复 岁月长衣裳薄
岁月长衣裳薄 回复 叶zero 提问者
我的理解 *p里的p是指向一段连续的内存的首地址, delete是释放从p地址开始的这段内存;直接从地址开始释放要快些吧。
慕的地0093153
举报
C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通