话说delete到底干了什么?

#include

usingnamespacestd;

intmain()

{

       int*a=newint(5);

       int*p=a;

       cout<<"5这个整型存储的地址是"<

       cout<<"指针变量a指向的数值是"<<*a<

       cout<<"指针变量a的值是"<

       delete a;

       cout<<"已经删除了指针变量"<

       cout<<"现在p存储的地址是"<

       cout<<"现在a存储的地址是"<

       cout<<"现在p指向的整型是"<<*p<

       cout<<"现在我重新给指针p指向的值赋值为 6"<

       *p= 6;

       cout<<"再次输出得到的值为"<

       cout<<*p<


       //其实就是这个地址的内存已经被释放了,已经不是原先的那个东西了。指针变量的值

       //自始至终都没有变过,但是最后指针变量指向的值已经改变了

       return0;

}

输出的截图是

5这个整型存储的地址是00C46518

指针变量a指向的数值是5

指针变量a的值是00C46518

已经删除了指针变量

现在p存储的地址是00C46518

现在a存储的地址是00C46518

现在p指向的整型是-572662307

现在我重新给指针p指向的值赋值为 6

再次输出得到的值为

6

说明了这是这个指针不指向这段内存了,这个内存地址依然是存在了,但是是可以再用的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,507评论 3 44
  • C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程...
    小辰带你看世界阅读 973评论 0 6
  • 今天忙了大半天,下午闲来无事,习惯拿着手机看看新闻,阅读一下自己喜欢的文章。群里同学桦偶尔的发言,刚好昨晚有梦见她...
    白云伊处阅读 378评论 0 1
  • Swift 标准库中有许多 protocols,其中很多看起来貌似很抽象,并且感觉并没有什么卵用,RawRepre...
    Cyandev阅读 9,306评论 8 29
  • 北京时间8:38,终于在发车的前一刻赶上了那一趟5026的硬座,今天月圆,车上人不多,选定靠窗座位,便如老翁入定一...
    乔小逸阅读 268评论 0 0