标准的答案!智能指针是一种数据类型,包括好几种,比如shared_ptr,scoped_ptr等等,使用它们可以方便管理内存,便于垃圾回收器(非自动)回收系统资源。具体的机制请查看相关文档。 而自动垃圾回收器是运行环境(比如JVM或.NETFRAMEWORK)提供的管理程序,通常会根据有没有指针指向一块资源等标准来判断是否该回收。 垃圾回收器使用方便,你不用操心内存泄露,无效指针啊什么的,当然代价是可控性降低,伴随性能降低。